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;
}

转载于:https://my.oschina.net/hpuwxy/blog/905361

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值