我最近开始尝试完成一些 UVA 问题,但我遇到了第一个问题。问题是 3n + 1。我已经取得了一些进展,几乎完成了除了增量之外的所有要求。
InputStreamReader inputStream = new InputStreamReader(System.in);
BufferedReader buffReader = new BufferedReader(inputStream);
try
{
String input = buffReader.readLine();
String[] brokenArray = input.split("\\s");
int a = Integer.parseInt(brokenArray[0]);
int b = Integer.parseInt(brokenArray[1]);
int c = 1;
System.out.print(a +" "+b+" ");
//if( a <= b )
while ( a!= b) {
while (a != 1) {
if((a%2)!= 0) {
c++;
a = 3*a+1;
} else {
c++;
a = a/2;
}
}
System.out.println(c);
**a ++;**
}
所以基本上它应该接受2个输入并运行一个计数,这是所执行操作的c..但是在它完成对一个数字的操作计数之后,它必须移动到第二个数字,因此我放了一个增量来移动到下一个。它第一次递增,但底部的变量 a 保持为 1,因此我不断递增 1 而不是递增 2、3 等。