Chris_kxt 2018-10-11 00:03 采纳率: 100%
浏览 3234
已采纳

C++语言编程 检查一个3位数是水仙花数

检查一个3位数是水仙花数输入:一个数字,比如 371输出:是的,这个数字是一个水仙花数,
如果不是则输出 这个数字不是水仙花数。

  • 写回答

8条回答 默认 最新

  • 白色一大坨 2018-10-11 02:13
    关注
     #include <iostream> 
    using namespace std;
    int main()
    {
        int a, b, c, y, n = 0;
        cout << "请输入三位数字:" << endl;
        cin >> n;
    
        a = n % 1000 / 100;  //求第一位数 
        b = n % 100 / 10;    //求第二位数
        c = n % 10 / 1;      //求第三位数 
        y = a*a*a + b*b*b + c*c*c;
        if (y == n) cout << n << "是水仙花数" << endl;
        else cout << n << "不是水仙花数" << endl;
    
    
        system("pause");
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • cold_windx 2018-10-11 01:12
    关注

    #include
    using namespace std;
    int main()
    {
    int n;
    cin >> n;
    int sum = 0, m = n;
    while (m != 0)
    {
    int x = m % 10; //截取n的个位
    m /= 10; //去除n的个位
    sum += x * x * x;
    }
    if (sum == n)
    cout << "Yes\n";
    else
    cout << "No\n";
    system("pause");
    return 0;
    }

    
    
    评论
  • dzxy17 2018-10-11 02:23
    关注

    #include
    int main()
    {
    int i,a,b,c;
    for(i=100;i<1000;i++)
    {
    a=i/100;
    b=(i/10)%10;
    c=i%10;
    if((a*a*a+b*b*b+c*c*c)==i)
    printf("%d\n",i);
    }
    return(0);
    }
    这是打印1000以内的水仙花数,希望对您有帮助。

    评论
  • jun3344 2018-10-11 02:39
    关注

    #include
    void main()
    {
    int i,j,k,n;
    printf("请输入一个三位整数\n");

    i=n/100;
    j=n/10%10;
    k=n%10;
    if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
    {
    printf("%-5d是水仙花数",n);
    }
    else
    {
    printf("%-5d不是水仙花数",n);
    }
    printf("\n");
    }

    评论
  • 木子紫木 2018-10-11 06:42
    关注
    #include <iostream> 
    using namespace std;
    int main()
    {
        int a, b, c, y, n = 0;
        cin >> n;
    
        a = n % 1000 / 100;  //求第一位数 
        b = n % 100 / 10;    //求第二位数
        c = n % 10 / 1;      //求第三位数 
        y = a*a*a + b*b*b + c*c*c;
        if (y == n) cout << n << "是水仙花数" << endl;
        else cout << n << "不是水仙花数" << endl;
    
    
        system("pause");
        return 0;
    }
    
    评论
  • YiFoEr_Liu 2018-10-11 06:45
    关注

    #include
    using namespace std;
    int main()
    {
    int a, b, c, y, n = 0;
    count << "三位数:" << endl;
    cin >> n;

    a = n % 1000 / 100;  
    b = n % 100 / 10;   
    c = n % 10 / 1;  
    y = a*a*a + b*b*b + c*c*c;
    if (y == n) count << n << "是" << endl;
    else cout << n << "不是" << endl;
    
    
    system("pause");
    return 0;
    

    }

    评论
  • 陈一一敲代码 2023-02-21 20:49
    关注
    
     #include <iostream> 
    using namespace std;
    int main()
    {
        int a, b, c, y, n = 0;
        cout << "请输入三位数字:" << endl;
        cin >> n;
     
        a = n % 1000 / 100;  //求第一位数 
        b = n % 100 / 10;    //求第二位数
        c = n % 10 / 1;      //求第三位数 
        y = a*a*a + b*b*b + c*c*c;
        if (y == n) cout << n << "是水仙花数" << endl;
        else cout << n << "不是水仙花数" << endl;
     
     
        system("pause");
        return 0;
    }
    
    评论
  • Hg_Mercury_26 2023-03-12 15:39
    关注

    希望对您有帮助qwq
    思路:

    • 运用数位分离的方法
    • 水仙花的判定条件:
      个位的三次方+十位的三次方+百位的三次方 = 自己本身

    代码:

    #include <iostream>
    using namespace std;
    int main()
    {
        int N,g,s,b;
        cin >> N;
        g = N % 10;
        s = N / 10 % 10;
        b = N / 100;
        if(g*g*g + s*s*s + b*b*b == N)
        {
            cout << "yes" ;
        }
        else
        {
            cout << "no" ;
        }
    }
    

    附赠:

    • 153
    • 370
    • 371
    • 407
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥30 哈夫曼编码译码器打印树形项目
  • ¥20 求完整顺利登陆QQ邮箱的python代码
  • ¥15 怎么下载MySQL,怎么卸干净原来的MySQL
  • ¥15 网络打印机Ip地址自动获取出现问题
  • ¥15 求局部放电案例库,用于预测局部放电类型
  • ¥100 QT Open62541
  • ¥15 stata合并季度数据和日度数据
  • ¥15 谁能提供rabbitmq,erlang,socat压缩包,记住版本要对应
  • ¥15 Vue3 中使用 `vue-router` 只能跳转到主页面?
  • ¥15 用QT,进行QGIS二次开发,如何在添加栅格图层时,将黑白的矢量图渲染成彩色