问题标题: 酷町堂:1031   千变万化总是“1”

0
0
已解决
李致远
李致远
高级光能
高级光能
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
    long long n,cnt=0,m=3,k=1,s=2;
    cin>>n;
    while(n!=1){
        if(n%2!=0){
            int ans=n*m+k;
            printf("%d*%d+%d=%d\n",n,m,k,ans);
            n=ans;
        }
        else{
            int ans=n/s;
            printf("%d/%d=%d\n",n,s,ans);
            n=ans;
        }

    }
    cout<<"END";
    return 0;
}
1031   千变万化总是“1”

题目描述 Description

数字“1”是所有正整数的伊始,给人以无限的遐想。任何一个正整数,不管千变万化,通过一定的运算规则,总可以得到1。其规则如下:每一个正整数,如果它是奇数,则对它乘 3 再加 1,如果它是偶数,则对它除以 2,如此循环,最终都能够得到 1,故又称为3n+1 猜想。
本题要求输入任意一个正整数,将经过千变万化得到1的过程输出出来。

输入描述 Input Description

输入为一个正整数n(n≤2000000)。

输出描述 Output Description

输出从整数n经过千变万化得到1的过程,每一步单独为一行,每一行中显示该步的计算公式,并在最后一行输出"End"。如果输入为1,则直接输出"End"即可(数字与符号之间没有空格)。

样例输入 Sample Input

3

样例输出 Sample Output

3*3+1=10 
10/2=5
5*3+1=16 
16/2=8 
8/2=4 
4/2=2 
2/2=1 
End
0分?????

 


0
已采纳
周明轩
周明轩
资深光能
资深光能

你有一个小错误:

把:
cout<<"END";
换成:
cout<<"End";

就行了。

望采纳,谢谢。

​​​​​​​​​​​​​​

0
我要回答