Description:
有这样一个游戏:从一个正整数开始,两人轮流进行如下运算:
若是奇数,就把这个数乘以 3 再加 1;若是偶数,就把这个数除以 2。这样演算下去,直到
第一次得到 1 才算结束,首先得到 1 的获胜。
比如,要是从 1 开始,就可以得到 1 4 2 1;要是从 17 开始,则可以得到
17 52 26 13 40 20 10 5 16 8 4 2 1。
这个问题就是叙拉古猜想,也叫科拉兹猜想或角谷猜想。
现在,你和你的朋友一起玩这个游戏,由你先开始,请问谁获胜?
Input:
第一行 N(N<=500),接下来 N 行,每行一个整数 M(M<=10,000,000),表示你拿到的数字
式 M。
Output:
输出 N 行,如果是你获胜,输出“I win!”,否则输出“I lost!”。
Sample Input:
2
1
17
Sample Output:
I win!
I lost!
你题目的解答代码如下:
import java.util.*;//导包
class HelloWorld {
public static void main(String []args) {
Scanner sc = new Scanner(System.in);
int n,i,m,c;
n = sc.nextInt();
for (i=0;i<n; i++){
c = sc.nextInt();
m = 0;
do {
if (c % 2 == 1)
c = c*3+1;
else
c = c / 2;
m++;
} while (c!=1);
if (m % 2 == 1)
System.out.println("I win!");
else
System.out.println("I lost!");
}
}
}
如有帮助,望采纳!谢谢!