demo15:水仙花数

7.用函数实现求水仙花数:一个三位数它的每一位数字的立方和等于该数本身 (eg:3^3+7^3+0^3=370)

代码如下:

#include<stdio.h>   
bool Get_FlowerNum(int num){
	int a=0,b=0,c=0;//370/100=3  370-3*100=70 70/10=7 70-7*10=0
	a=num/100;
	num=num-a*100; //会导致原来的num值发生变化!!! 
	b=num/10;
	c=num-b*10;
	int sum=(a*a*a)+(b*b*b)+(c*c*c);
	num=a*100+b*10+c*1; //先让num=原来传进来要判断的值再判断 
	if(num==sum){
		return true;
	}
	return false;
}
int main(){
	int num=0;
	printf("请输入一个三位数:\n");
	scanf("%d",&num);
	if(Get_FlowerNum(num)){
		printf("%d是水仙花数!\n",num);
	}
	else printf("%d不是水仙花数!\n",num);
	return 0;
}

代码实现如下:

ps:严格的讲,水仙花数只能为三位数! 

附加题:输出100到1000的水仙花数

代码如下:(在上一个代码稍作修改即可)

#include<stdio.h>
bool Get_FlowerNum(int num){
	int a=num/100;
	num=num-a*100;
	int b=num/10;
	int c=num-b*10;
	int sum=a*a*a+b*b*b+c*c*c;
	num=a*100+b*10+c;
	if(num==sum){
		return true;
	}
	else return false;
}
int main(){
	int i=0;
	for(i=100;i<1000;i++){
		if(Get_FlowerNum(i)){
			printf("%d是水仙花数!\n",i);
		}
	}
	return 0;
}

代码实现如下:

 以上即是所有的水仙花数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值