C语言打印出“水仙花数”
博客专区 > LostArt 的博客 > 博客详情
C语言打印出“水仙花数”
LostArt 发表于7个月前
C语言打印出“水仙花数”
  • 发表于 7个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 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;
}

共有 人打赏支持
粉丝 2
博文 19
码字总数 7941
×
LostArt
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: