1 条题解

  • 0
    @ 2025-8-24 21:03:15

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar W_SUN
    绝艺如君天下少,闲人似我世间无

    搬运于2025-08-24 21:03:15,当前版本为作者最后更新于2021-07-12 16:39:26,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    管理员备注:本题数据已于 2023 年更新,在极限情况下运算过程中可能出现数据溢出 int 的情况,因此请将本题所有题解中的代码运算视作 long long 运算。

    #include <bits/stdc++.h>
    using namespace std;
    long long n;
    int main() {
    	cin >> n;
    	while (n != 1) {	  
    		if (n % 2 != 0) { 
    			cout << n << "*3+1=" << n * 3 + 1 << endl;
    			n = n * 3 + 1;
    		} else { 
    			cout << n << "/2=" << n / 2 << endl;
    			n = n / 2;
    		}
    	}
    	cout << "End" << endl;
    	return 0;
    }
    
    

    这道题不难,考察的是对循环的运用。这里我们采用 while 循环来做。还要注意一下格式,结尾有 End。

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    int main(){
        cin>>n;
        while(n!=1){//n不为1
            if(n%2!=0){//奇数
                cout<<n<<"*3+1="<<n*3+1<<endl;
                n=n*3+1;
            }
            else{//偶数
                cout<<n<<"/2="<<n/2<<endl;
                n=n/2;
            }
        }
        cout<<"End";//结尾输出End
        return 0;
    }
    
    • 1

    信息

    ID
    6934
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    1
    已通过
    0
    上传者