永发信息网

输出所有的“水仙花数”

答案:3  悬赏:30  手机版
解决时间 2021-07-22 07:15
  • 提问者网友:niaiwoma
  • 2021-07-21 10:35

输出所有的“水仙花数”所谓“水仙花数”是指一个3位数,其个位数字的立方之和

等于该数本身,例如,153是一水仙花数,应为153=1的3次方(1的立方)+5的3次方(5的立方)+3的3次方(3的立方)。

最佳答案
  • 五星知识达人网友:迟山
  • 2021-07-21 12:07

水仙花数是指一个 n 位数 ( n>=3 ),它的每个位上的数字的 n 次幂之和等于它本身.
所以n位数的水仙花数就是将其每一位的n次方相加.看是否等于其本身.
三位的水仙花数共有4个:153,370,371,407;


程序如下:


#include<iostream>
using namespace std;


int main()
{
int bit1,bit2,bit3;
for(int i=100;i<1000;++i)
{
bit1=i/100; //取百位数
bit2=(i/10)%10; //取十位数
bit3=i%10; //取个位数
if(i == bit1*bit1*bit1 + bit2*bit2*bit2 + bit3*bit3*bit3 ) //将各个数的立方相加看是否等于其本身.
{
cout<<i<<endl;
}
}
return 0;
}


附图:


全部回答
  • 1楼网友:酒安江南
  • 2021-07-21 13:02
#include"stdio.h" #include"math.h" void armstrong() { int i,k=1,a,b,c; for(i=100;i<=999;i++){ c=pow(i/100,3)+pow(i%100/10,3)+pow(i%10,3); if(i==c){ if(k/10==0) printf("\n"); printf("%4d",i); k++; } } } void main() { armstrong(); getch(); }
  • 2楼网友:由着我着迷
  • 2021-07-21 12:37
#include<stdio.h> void main() { int n,a,b,c; for(n=100;n<1000;n++) { a=n/100; b=n%100/10; c=n%10; if(n==a*a*a+b*b*b+c*c*c) {printf("水仙花数有:%d\n",n);} } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯