冰雹猜想又称角谷猜想,是指对于任意一个正整数,如果是奇数,则乘 3 加 1,如果是偶数,则除以 2,得到的结果再按照上述规则重复处理,最终总能够得到 1。
如,假定初始整数为 5,计算过程分别为 16、8、4、2、11。
程序要求输入一个整数,写一个函数将经过处理得到 1 的过程输出来。
输入格式
一个正整数 N(N≤2,000,000)。
输出格式
从输入整数到 1 的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End"。如果输入为 1,直接输出"End"。
数据保证中途计算不会超过int范围。
样例输入复制
5
样例输出复制
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
End
我的答案:
#include <iostream>
using namespace std;
void jiaogu(int n)
{
while (n != 1)
{
if (n % 2 == 1 &&n!=1)
{
int m = n;
n = n * 3 + 1;
cout << m << "*3+1=" << n << endl;
}
int k = n;
n = n / 2;
cout << k << "/2=" << n << endl;
}
if (n == 1) cout << "End";
}
int main()
{
int n;
cin >> n;
jiaogu(n);
return 0;
}