永发信息网

C语言编程题:打印出所有的“水仙花数”。所谓的“水仙花数”是指一个三位数,其中各位数字的立方和等于该数本身。

答案:4  悬赏:50  手机版
解决时间 2021-05-05 02:00
  • 提问者网友:轻浮
  • 2021-05-04 20:27
例如153=1(立方)+5(立方)+3(立方)《备注:1,3,5头上为三次方,因为打不出来》
最佳答案
  • 五星知识达人网友:思契十里
  • 2021-05-04 20:32

#include<stdio.h>


void main()


{


int a,b,c,i;


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


{ a=i/100;


b=(i-a*100)/10;


c=i%10;


if(i==a*a*a+b*b*b+c*c*c)


printf("%d ",i);


}


}

全部回答
  • 1楼网友:旧脸谱
  • 2021-05-04 23:05

我以前写的,求3位数中说有的水仙花数

#include <math.h> int main(void) { int i=100,a,b,c; printf("3位数中的水仙花数为:"); for(;i<=999;i++) { a=i/100; b=(i/10)%10; c=i%10; if(pow(a,3)+pow(b,3)+pow(c,3)==i) printf("%d\t",i); } getchar(); getchar(); return 0; }

  • 2楼网友:夜余生
  • 2021-05-04 21:44
main()   {   int a,b,c;   for(a=1;a<=9;a++)   for(b=0;b<=9;b++)   for(c=0;c<=9;c++)   if(100*a+10*b+c==a*a*a+b*b*b+c*c*c)   printf("%d%d%d\n",a,b,c);

 }

虽然没有编译过,但是应该没有错误的,水仙花数那个三次方打不出,你可以吧那个数连续乘3次,这样就可以啊

  • 3楼网友:未来江山和你
  • 2021-05-04 21:04

水仙花数是指一个 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; }

附图:

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯