求100到1000之间的水仙花数

求100到1000之间的水仙花数

“水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。基本信息定义水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。

#include "math.h"
#include "stdio.h"

int main() {
    int a, b, c;

    for (int i = 100; i < 1000; i++) {
        //百位数
        a = i / 100;
        //十位数
        b = i / 10 % 10;
        //个位
        c = i % 100 % 10;
        //printf("%d\t", a);
        //printf("%d\t", b);
        //printf("%d\t", c);
        if (pow(a, 3) + pow(b, 3) + pow(c, 3) == i) {
            printf("%d\t", i);
        }
    }
}

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 答:100-1000之间的所有水仙花数有153、370、371、407、和三位数的820、871、和四位数的9474、和五位数的54748、和六位数的92727、和七位数的93084。共有13个水仙花数。 ### 回答2: 水仙花数是指一个三位数,各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为1³+5³+3³=153。 输出100-1000之间的所有水仙花数可以通过程序实现。我们可以使用循环结构遍历100-1000之间所有的三位数,对每个数进行水仙花数判断即可。 具体的实现可以按照以下步骤: 1. 从100开始循环遍历到1000,每次循环增加1。 2. 对于每个循环到的数,将其各位数字分离出来。 3. 对分离出的各位数字进行立方运算,将运算结果累加起来。 4. 判断累加结果是否等于该数本身,若相等则输出该数。 5. 继续循环遍历,直到遍历完1000为止。 具体的代码如下所示: ```python for num in range(100, 1000): # 分离出各位数字 digit1 = num // 100 digit2 = num % 100 // 10 digit3 = num % 10 # 计算立方和 sum_of_cubes = digit1 ** 3 + digit2 ** 3 + digit3 ** 3 # 判断是否为水仙花数 if sum_of_cubes == num: print(num) ``` 运行上述代码后,可以输出100-1000之间所有的水仙花数,包括153、370、371、407。 ### 回答3: 水仙花数,也叫“自恋数”,是指一个三位数等于其各位数字的立方和,如153。 要输出100-1000之间的所有水仙花数,可以使用循环结构和条件判断语句。具体步骤如下: 1. 从100开始循环到1000,设置循环变量i。 2. 将i分解成百位数、十位数、个位数,分别用i//100、i//10%10、i%10表示。 3. 判断i是否等于各位数的立方和,即判断i是否为水仙花数。如果是,输出i。 4. 循环结束。 代码如下: ``` for i in range(100, 1000): bai = i // 100 # 分解百位数 shi = i // 10 % 10 # 分解十位数 ge = i % 10 # 分解个位数 if i == bai**3 + shi**3 + ge**3: # 判断是否为水仙花数 print(i) ``` 执行以上代码,输出结果如下: ``` 153 370 371 407 ``` 因此,100-1000之间的所有水仙花数有:153、370、371、407。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值