问题说明:
你听说过角谷预想吗?
的任意正整数,例如5,我们从那里开始,按如下规则计算:
如果是偶数的话用2除,如果是奇数的话乘以3再加1。
这样循环,最终一定会得到“1”!
例如,5的处理过程:
5
16
8
4
2
1
一个正整数要经过多少步骤才能成为1,这被称为角谷步数。
在5的情况下,步数也是5
如果为1,则步数为0
本问题的要求是从标准输入中给出整数n1)
求出满足该角谷步数的最小正整数
例如:
输入:
3
输出:
8
输入:
4
输出:
16
输入:
7
输出:
3
问题解决:
package编程的大问题
import java.util.Scanner;
公共类文件15 {
privatestaticscannerscanner=new scanner system.in );
//*
*计算某个数的角谷步数
*
* @param source
*求整数
* @return计算的角谷步骤数
*/
publicstaticintgetnum int source ) {
int num=0 //角谷步数
whilesource!=1) {
ifsource%2==0
//偶数的话除以2
source=source/2;
} else {
//如果是奇数,乘以3再加1
source=source * 3 1;
}
num;
}
return num;
}
publicstaticvoidmain string [ ] args ) {
int num=scanner.nextInt ; //输入角谷步数1
int temp=1; //满足此角谷步数的最小正整数
getnum temp )!=num ) {
时间;
}
system.out.printlntemp );
}
}