public void run() {
		int initialNum = readInt ("Enter a number: ");
		int stepCount = 0;
		while (initialNum != 1){
			/* computes the remainder of initial number divided by 2 to determine if the initial number 
			 * is odd or even. */
			int remainder = initialNum % 2;
			/* variable p, q is used for display purpose. */
			int p = initialNum*3 +1;
			int q = initialNum/2;
			if (remainder == 0) {
				println (initialNum + " is even so I take half: " + q);
				//initialNum /= 2;  // 你已经之前将结果放在了q里面。这里是重复运算了。
				initialNum = q;
				
			}else if (remainder == 1){
				println (initialNum + " is odd, so I make 3n + 1: " + p);
				//initialNum = initialNum*3 + 1;   // 你已经之前将结果放在了p里面。这里是重复运算了。
				initialNum = p;
				
			}
			stepCount += 1;
		}
		println ("The Process took " + stepCount + " steps to reach 1.");
	}