测试积点老人 发表于 2021-12-10 10:45:54

各位大佬帮帮忙,实在做不出来

如果一个数它的每位数码的平方相加等于这个数自己。输出1000以内所有这样的数,并统计有几个这样的数字

luming 发表于 2021-12-10 11:19:17

#coding:utf-8
N = 4
(('1'<<'0'*(N-1)).to_i..('9'*N).to_i).each do |i|   #从10...到99... 循环
n = 0.upto(N-1).inject(0) { |sum,j|sum + (i.to_s.to_i)**N}#N次方加和
p i if n==i
end

不知道做什么的,应该能解决吧。

海海豚 发表于 2021-12-13 09:46:37

#include <stdio.h>
int func(int n);
int main(void)
{
    int i;
    for(i=0;i<1000;++i)
    {
      if(func(i))
      {
            printf("%d\n",i);
      }
    }
    return 0;
}
int func(int n)
{
    int t,sum;
    for(t=n,sum=0;t;t/=10)
    {
      sum+=(t%10)*(t%10);
    }
    return sum==n;
}

qqq911 发表于 2021-12-13 10:40:42

可以的,用个嵌套循环就ok

郭小贱 发表于 2021-12-13 14:32:41

厉害了...

千里 发表于 2021-12-14 09:06:33

这个不就是那个水仙花数吗
页: [1]
查看完整版本: 各位大佬帮帮忙,实在做不出来