如何求出100至999之间所有的水仙花数?
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。
例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
给你举例说明
求出100至999之间的所有“水仙花数”
找出100--999之间的所有“水仙花数”。所谓“水仙花数”是指一个三个数,其各位数字的立方和等于身。
解此题的关键是怎能样从一个三位数中分离百位数、十位数、个位数。可以这样做,设该三位数以i代表,由a,b,c三个数字组成。
(1)百位数字a:a=INT(i/100).
(2)十位数字b:b=INT((i-100*a)/10)
(3)百位数字c:c=i-int(i/10)*10.
具体程序如下:
for i=100 to 999
a=INT(i/100)
b=INT((i-100*a)/10)
c=i-int(i/10)*10
if i=a*a*a+b*b*b+c*c*c then print i
next 1
end
其结果为:153\370/371/407
扩展资料:
相类似的有玫瑰花数
# include <stdio.h>
# include <math.h>
int main(void)
{
int i;
int s;
int a,b,c,d;
for(i=1000;i<10000;++i)
{
a = i/1000;
b = (i/100)%10;
c = (i/10)%10;
d = i%10;
s = pow(a,4) + pow(b,4) + pow(c,4) + pow(d,4);
if (s == i)
printf("这个数为玫瑰花数:%d\n", i);