2301_80758860 2023-11-18 14:17 采纳率: 50%
浏览 6
已结题

C语言水仙花,有关数组问题

输入的数据组数无法确定,我该怎么输入呢,请赐教,不会写了啊唉

img

  • 写回答

2条回答 默认 最新

  • 微软技术分享 优质创作者: 编程框架技术领域 2023-11-18 15:06
    关注

    水仙花数先搞清楚怎末算再说如何写代码,首先什么是水仙花数?

    所谓的水仙花指的是,一个n位数,其各位数字的n次幂之和等于它本身。

    我给你打个比方吧,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153,等于自身就是。

    然后,我再说如何求,%10取余去掉各位数,累加三次蜜,去掉个位数继续累加,知道为0停止。

    #define _CRT_SECURE_NO_WARNINGS
    #define _WIN32_DCOM
    #define _CRT_NONSTDC_NO_DEPRECATE
    
    #include <Windows.h>
    #include <iostream>
    
    using namespace std;
    
    
    int shibushi(int num)
    {
        int sum = 0;
        int temp = num;
    
        while (temp > 0)
        {
            // 得到个位数
            int digit = temp % 10;
    
            // 累加三次蜜
            sum += digit * digit * digit;
    
            // 去掉各位
            temp /= 10;
        }
    
        return sum;
    }
    
    
    int main(int argc, char *argv[])
    {
    
        int num = 153;
        int num1 = 122;
        int num2 = 222;
    
    
        if (num == shibushi(num))
        {
            printf("是 \n");
        }
        else
        {
            printf("不是 \n");
        }
    
        if (num1 == shibushi(num))
        {
            printf("是 \n");
        }
        else
        {
            printf("不是 \n");
        }
    
        if (num2 == shibushi(num))
        {
            printf("是 \n");
        }
        else
        {
            printf("不是 \n");
        }
    
    
    
        system("pause");
        return 0;
    }
    

    输出计算,153是,122不是,222不是。

    img

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

报告相同问题?

问题事件

  • 系统已结题 2月28日
  • 已采纳回答 2月20日
  • 修改了问题 11月18日
  • 创建了问题 11月18日