YTU OJ 1314: 角谷步数

Description


你听说过角谷猜想吗?
任意的正整数,比如 5, 我们从它开始,如下规则计算:
如果是偶数,则除以2,如果是奇数,则乘以3再加1.
如此循环,最终必会得到“1” !

比如 5 的处理过程是:
5
16
8
4
2
1

一个正整数经过多少步才能变成1, 称为角谷步数。
对于5而言,步数也是5
对于1,步数为0

Input

从标准输入给定一个整数n(1<n<300)表示角谷步数

Output

满足这个角谷步数的最小的正整数

Sample Input

3

Sample Output

7

HINT

注意:题目中给出的数据是相反的,正确数据应该为输入7输出3

由于此题给处的数据要求不大,用int型即可正确。

代码:

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int k = 0;
		for (int i = 1; i < 99999; i++) {
			int t = 0;
			k = i;
			while (k != 1) {
				t++;
				if (k % 2 == 0)
					k = k / 2;
				else
					k = k * 3 + 1;
			}
			if (n == t) {
				System.out.println(i);
				break;
			}
		}
	}
}

猜你喜欢

转载自blog.csdn.net/mcp3128/article/details/81173940