小张同学() 2023-08-02 19:20 采纳率: 76.2%
浏览 4
已结题

关于#c++#的问题,请各位专家解答!

关于#c++#的问题,请各位专家解答!

img

img

img


关于#c++#的问题,请各位专家解答!

  • 写回答

3条回答 默认 最新

  • a5156520 2023-08-02 19:30
    关注

    可以使用循环来实现。

    代码如下:

    
    #include <iostream>
    
    using namespace std;
    
    int main(void){
        
        
        int n,sum=0,temp;
        cin>>n;  // 获取n 
        
        while(n!=1){  // 如果n不为1,则循环计算 
            
            temp=n;  // 备份n到temp,用于计算n的各数位数字之和 
        //    temp2=n;
            sum=0;  // 存储n各位数字之和的变量sum初始化为0 
            while(temp!=0){  // 计算整数n 的各位数字之和 
                sum+=temp%10;
                temp/=10;
            }
        //    getchar();
            if (sum%2!=0){  // 如果和为奇数 
                cout<<n<<"->"<<sum<<"*3+1="<<sum*3+1<<endl;
                n=sum*3+1;
            }else{   // 如果和为偶数 
                cout<<n<<"->"<<sum<<"/2="<<sum/2<<endl;
                n=sum/2;            
            }    
        //    getchar();
        }
        
        // 如果n的值为1,打印"End" 
        if(n==1){
            cout<<"End";
        }
        
        
        return 0;
        
    } 
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月10日
  • 已采纳回答 8月2日
  • 创建了问题 8月2日