判断一个三位数是否为水仙花数

Description

编写程序,判断一个给定的三位数是否为水仙花数。

三位水仙花数,即其个位、十位、百位数字的立方和等于该数本身。

Input

多测试用例,一个测试用例占一行:一个需要判断的整数 n

Output

一个测试用例输出一行结果:如果 n 是水仙花数,则输出一行 yes,否则输出 no

如果 n 不是三位正整数,则输出 Invalid Value

Sample Input

153
500
-2

Sample Output

yes
no
Invalid Value

#include<stdio.h>
#include<math.h>
int main()
{
	int n,a = 0,b = 0,c = 0,x = 0;  //初始化
	double math;  //定义一个判断三位数的变量 
	math = 0;  //初始化 
	while(scanf("%d",&n)!=EOF){  //多测式用例 
		math = n /100;  //判断三位数 
		if(math>=1&&math<10){    //是三位数 
			c = n/100;  //百位数 
			b = (n%100)/10;  //十位数 
			a = (n%100)%10;  //个位数 
			x = pow(a,3)+pow(b,3)+pow(c,3);
			if(n==x){     //判断是否相等 
				printf("yes\n");
			}
			else{
				printf("no\n");
			}
		}
		else{                 //如果不是三位数则跳到这里 
			printf("Invalid Value\n"); 
		}
	}
	return 0;
 } 

### 回答1: 水仙花数是指一个三位数,其各数字的立方和等于该数本身。例如,153是一个水仙花数,因为1³+5³+3³=153。 以下是Python代码来判断一个三位数是否水仙花数: num = int(input("请输入一个三位数:")) # 获取百、十、个数字 hundreds = num // 100 tens = (num // 10) % 10 ones = num % 10 # 判断是否水仙花数 if num == hundreds**3 + tens**3 + ones**3: print(num, "是水仙花数") else: print(num, "不是水仙花数") ### 回答2: 水仙花数是指一个三位数,其各数字的立方和等于本身。比如,153便是一个水仙花数,因为1的三次方+5的三次方+3的三次方等于153。 要判断一个三位数是否水仙花数,我们可以通过以下步骤来实现: 1. 首先,将这个三位数拆分成三个数字,分别表示为百、十和个。可以使用数学中的除法和取余运算来实现,如下所示: ``` num = 153 hundreds = num // 100 tens = (num // 10) % 10 ones = num % 10 print(hundreds, tens, ones) # 输出结果为 1 5 3 ``` 2. 然后,通过计算这三个数字的立方和是否等于原来的数来判断是否水仙花数,如下所示: ``` num = 153 hundreds = num // 100 tens = (num // 10) % 10 ones = num % 10 if hundreds**3 + tens**3 + ones**3 == num: print(num, "是水仙花数") else: print(num, "不是水仙花数") ``` 整段代码如下: ``` num = 153 hundreds = num // 100 tens = (num // 10) % 10 ones = num % 10 if hundreds**3 + tens**3 + ones**3 == num: print(num, "是水仙花数") else: print(num, "不是水仙花数") ``` 如果要检查多个三位数是否水仙花数,我们可以使用循环语句和条件语句,如下所示: ``` for num in range(100, 1000): hundreds = num // 100 tens = (num // 10) % 10 ones = num % 10 if hundreds**3 + tens**3 + ones**3 == num: print(num, "是水仙花数") else: print(num, "不是水仙花数") ``` 上述代码会依次检查100到999之间的所有三位数,并输出其中的水仙花数。如果不想输出每个数的判断结果,可以将print语句改为保存到一个列表中,再一次性输出。 ### 回答3: 水仙花数是指一个三位数等于其各个数字的立方和之和,例如153是一个水仙花数,因为1^3+5^3+3^3=1+125+27=153。现在我们来探讨一下如何使用Python来判断一个三位数是否水仙花数。 首先,我们需要定义一个函数isNarcissisticNumber,该函数传入一个参数num表示一个三位数,函数中需要进行以下操作: 1. 将传入的三位数num拆分为百数、十数和个数,分别用变量a、b、c存储; 2. 计算a的三次方、b的三次方和c的三次方,分别用变量a_cube、b_cube、c_cube存储; 3. 判断num是否等于a_cube+b_cube+c_cube,如果相等,则表明num是一个水仙花数,返回True;否则,num不是水仙花数,返回False。 以下是完整的代码实现: ```python def isNarcissisticNumber(num): a = num // 100 # 百数 b = num // 10 % 10 # 十数 c = num % 10 # 个数 a_cube = a ** 3 b_cube = b ** 3 c_cube = c ** 3 if num == a_cube + b_cube + c_cube: return True else: return False ``` 我们可以通过调用该函数来判断一个三位数是否水仙花数,例如: ```python print(isNarcissisticNumber(153)) # 输出True print(isNarcissisticNumber(370)) # 输出True print(isNarcissisticNumber(371)) # 输出True print(isNarcissisticNumber(407)) # 输出True print(isNarcissisticNumber(123)) # 输出False print(isNarcissisticNumber(999)) # 输出False ``` 以上就是判断一个三位数是否水仙花数的Python实现方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值