C、Python实现水仙花数输出

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

#include <stdio.h>

int main()

{

//定义三位数num,个位数sd,十位数td,百位数hd

int num, sd, td, hd;

//循环所有三位数

for( num=100 ; num<1000 ; num++ )

{

//获取三位数字num百位上的数字

	hd = num/100;

//获取三位数字num十位上的数字

td =(num-hd*100)/10 ;

//获取三位数字num个位上的数字

sd = num%10;

//水仙花数的条件

if( num==hd*hd*hd+td*td*td+sd*sd*sd ) 

{

printf("水仙花数字:%d\n", num); 

}

}

return 0; 

}

for i in range(100,1001):
    s=str(i)
    one=int(s[-1])
    ten=int(s[-2])
    hun=int(s[-3])
    if i==one**3+ten**3+hun**3:
        print(i)

转载

for num in range(100,1000): #如果num在[100,1000)范围,就依次循环取出num的值,第一次取100,下一次取101....最后一次取999
    bai = num // 100 # //取整符号,对100取整,得到百位上的数字
    shi = num // 10 % 10  #得到十位上的数字 %取余符号
    ge = num % 10  #得到个位上的数字
    if(bai**3+shi**3+ge**3==num): #各位数字和等于num
         print(num, end = ' ')   #输出符合if条件的数字  end = ' '使得输出的数不换行,以空格隔开同行输出
发布了51 篇原创文章 · 获赞 5 · 访问量 2152

猜你喜欢

转载自blog.csdn.net/weixin_44659084/article/details/103244990