c语言中,如何输出所有的水仙花数 水仙2113花数是指一个n位数n>;=3它的每个位上的数字5261的n次幂之和等于它本身.所以4102n位数的水仙花数就是将其1653每一位的n次方相加.看是否等于其本身.三位的水仙花数共有4个:153,370,371,407;程序如下:#includeusingnamespacestd;intmain(){intbit1,bit2,bit3;for(inti=100;i;i){bit1=i/100;取百位数bit2=(i/10)%10;取十位数bit3=i%10;取个位数if(ibit1*bit1*bit1bit2*bit2*bit2bit3*bit3*bit3将各个数的立方相加看是否等于其本身.{cout00加载更多
C语言: 输出所有的“水仙花数” C语言:输出所有的“水仙花数”,C语言:输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其中各位数字立方和等于该数字本身。例如:153是一个“水仙花数”,因为。
c语言,输出所有的水仙花数的问题 楼主你好~按照你的程序,你可能对于水仙话数有误解.首先,水仙花数是指一个 n 位数(n≥3),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3+5^3+3^3=153或3^3+7^3+0^3=370)注意:是每个 位上 的数字。而你的原代码写的效果是,例如第一次循环1^3+10^3+100^3=111,这样的表示是错的,按定义应该是判断1^3+1^3+1^3 是否等于111,当然明显是不等的,所以111不是水仙花数。而且这个代码还要考虑一件事,就是除了最高位百位外,十位和个位都有可能是0,所以,分别代表十位和个位的b与a应当从0开始循环到9,而百位的c则是从1循环到9~综上所述,修改的代码如下:includevoid main(){int a,b,c;for(a=0;a;a+)/个位的a由0开始for(b=0;b;b+)/十位的b由0开始for(c=1;c;c++)/百位的c由1开始if(a+b*10+c*100=a*a*a+b*b*b+c*c*c)/注意a,b,c都是单独一个数字,要组成3位数必须使其按位乘以10或者100printf(\"%d,%d,%d\\n\",c,b,a);按照百、十、个的顺序输出结果}希望楼主能看明白哈~祝楼主学习进步~望采纳~谢谢~