您的位置:首页 > 编程语言 > C语言/C++

C语言打印出“水仙花数”

2017-05-20 00:00 190 查看
摘要: C 、水仙花数、算法

/*题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数
    本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
*/
#include <stdio.h>
void wflower(int n) {
if(n<100) {
printf("error!");
}
int i = 100;
int t = 0;
int j = 0;
int sum = 0;
for(i; i<n; i++) {
j = i;
sum = 0;     //当每当一个数比较完后,一定要把这个变量初始为0,否则,数字会一直累加。 就像乘法口诀表一样的j,每一行都要从零开始
while(j>0) {
t = j % 10; //表示取出这个数字的每一位数
sum += (t*t*t);
j/=10; //去掉这个后面的一位数字,剩下的整数
}
if(sum == i) {    //判断如果求出的整数等于原来的数字,则打印,否则,回到for开始新的一轮(即比较下一个数字)
printf("%d\t",sum);
}
}
}

int main(void) {
wflower(1e3);
return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息