bochong_chan 发表于 2020-10-23 20:56:11

有没有大神详细讲解一下水仙花数的这个题的具体思路,谢谢了

for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:
      sum = sum + (temp%10) ** 3
      temp //= 10      
    if sum == i:
      print(i)

昨非 发表于 2020-10-23 20:59:21

本帖最后由 昨非 于 2020-10-23 21:03 编辑

for i in range(100, 1000):#遍历100到1000所有整数
   sum = 0#定义求和变量,初值为0
   temp = i
   while temp:#当i得值不等于0时,一直循环
       sum = sum + (temp%10) ** 3 #temp取余10得到最后一位的数值,sum等于temp各位数之和
       temp //= 10         # 注意这里要使用地板除哦~   这里第一次循环得到temp的前两位,第二次循环得到第一位,第三次循环temp=0跳出
   if sum == i: #判断i是否等于其各位数的三次方之和
       print(i)#打印满足情况的i得值

乐乐学编程 发表于 2020-10-23 21:08:30

一个整数的立方等于其各位数字的立方之和


#include <stdio.h>
int main()
{
    int hun, ten, ind, n;
    printf("result is:");
    for( n=100; n<1000; n++ )/*整数的取值范围*/
    {
      hun = n / 100;
      ten = (n - hun * 100) / 10;
      ind = n % 10;
      if(n == hun * hun * hun + ten * ten * ten + ind * ind *ind)    /*各位上的立方和是否与原数n相等*/
      {
            printf("%d", n);
      }
    }
    printf("\n");
   
    return 0;
}

乐乐学编程 发表于 2020-10-23 21:09:55

发错了,我这是C语言的。发完了才看到,不好意思

bochong_chan 发表于 2020-10-24 20:25:22

乐乐学编程 发表于 2020-10-23 21:09
发错了,我这是C语言的。发完了才看到,不好意思

没事,感谢感谢

bochong_chan 发表于 2020-10-24 20:26:33

昨非 发表于 2020-10-23 20:59


再次感谢

乐乐学编程 发表于 2020-10-25 08:50:57

bochong_chan 发表于 2020-10-24 20:25
没事,感谢感谢

唉,为了抢时间,从外面直接进到帖子,发完了再看前面有没有发过

大白菜60 发表于 2020-11-16 14:33:01

昨非 发表于 2020-10-23 20:59


码一下
页: [1]
查看完整版本: 有没有大神详细讲解一下水仙花数的这个题的具体思路,谢谢了