题目描述:
请编写一个程序,验证角谷猜想。所谓角谷猜想是:“对于任意大于1的自然数n,若n为奇数,则将n变为3*n+1,否则将n变为n的一半。”经过若干次这样的变化,一定会使n变为1。
输入格式:
一行,一个任意大于1的的自然数n
输出格式:
多行输出,每次变化的结果
样例输入:
3
样例输出:
n=10
n=5
n=16
n=8
n=4
n=2
n=1
分析:
我们只需要加入一个循环结构及一个判断奇偶数即可,奇偶数判断的话就用与2取模看看是不是为0来判断。若为奇数就进行3*n+1;若为偶数则进行n/2。
代码展示:
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
while (n != 1)//当n不等于1时进入循环
{
if (n % 2 == 0) {//偶数情况
n = n / 2;
cout << "n=" << n<<endl;
}
else {//奇数情况
n = n * 3 + 1;
cout <<"n="<< n << endl;
}
}
}
运行结果展示: