题目描述
所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘 33 加 11,如果是偶数,则除以 22,得到的结果再按照上述规则重复处理,最终总能够得到 11。如,假定初始整数为 55,计算过程分别为 16 、 8 、 4 、 2 、 1。
程序要求输入一个整数,将经过处理得到 11 的过程输出来。
输入格式
一个正整数 N(N≤2,000,000)。(注意,现在此题数据已超出int范围,得用long long)
输出格式
从输入整数到 1 的步骤,每一步为一行,每一部中描述计算过程。最后一行输出 End
。如果输入为 1,直接输出 End
。
输入输出样例
输入 #1
5
输出 #1
5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 End
Code:
C++:
#include<bits/stdc++.h>
using namespace std;
int main(){long long n;//注意!这里得用long long!我第一次就栽在这里了。cin>>n;while(n!=1){if(n%2==0){cout<<n<<"/2="<<n/2<<endl;n/=2;}else{cout<<n<<"*3+1="<<n*3+1<<endl;n=n*3+1;}}cout<<"End"; return 0;
}
AC:
C++:
R146601792 记录详情