1126 水仙花数
发布日期:2021-05-08 21:18:23 浏览次数:19 分类:精选文章

本文共 1066 字,大约阅读时间需要 3 分钟。

为了找到小于给定整数n的所有水仙花数,我们需要检查每个三位数是否满足水仙花数的条件。水仙花数是指一个三位数ABC,使得A³ + B³ + C³等于该数本身。以下是详细的步骤说明:

  • 输入整数n:首先读取输入的整数n,确保n小于1000。

  • 初始化变量:创建一个循环变量i,从100开始遍历到n-1。

  • 分解数字:对于每个i,将其分解为百位A、十位B和个位C。

  • 计算立方和:计算A³ + B³ + C³的值,检查是否等于i。如果相等,则i是一个水仙花数。

  • 收集结果:将所有满足条件的水仙花数收集到一个列表中。

  • 输出结果:如果列表为空,输出“No Answer”;否则,按顺序输出所有水仙花数。

  • 以下是实现代码:

    #include 
    #include
    int main() { int i = 100; int n; scanf("%d", &n); int count = 0; int results[100]; for (; i < n; i++) { int a = i / 100; int b = (i % 100) / 10; int c = i % 10; int sum = a * a * a + b * b * b + c * c * c; if (sum == i) { results[count++] = i; } } if (count == 0) { printf("No Answer\n"); } else { for (int j = 0; j < count; j++) { printf("%d ", results[j]); } printf("\n"); } return 0;}

    代码解释

    • 读取输入:使用scanf函数读取整数n。
    • 循环遍历:从100开始遍历到n-1,检查每个数是否为水仙花数。
    • 分解数字:通过整数除法和取余操作将i分解为百位、十位和个位。
    • 立方和计算:计算各位数字的立方和,判断是否等于原数。
    • 结果收集和输出:将满足条件的数收集到数组中,最后按顺序输出或输出“No Answer”。

    这个程序能够正确识别并输出所有小于n的水仙花数。

    上一篇:1198 今天星期几
    下一篇:1117 人口问题

    发表评论

    最新留言

    逛到本站,mark一下
    [***.202.152.39]2025年04月02日 03时33分56秒