智能2112 杨阳
题目要求及输入输出格式:
本题要求编写程序,判断一个给定的三位数是否为水仙花数。三位水仙花数,即其个位、十位、百位数字的立方和等于该数本身。
输入格式:
输入在一行中给出一个需要判断的整数 N(100≤N≤999)。
输出格式:
如果N是水仙花数,则在一行中输出Yes
,否则输出No
。如果N不是三位数,则输出Invalid Value.
。
输入样例1:
153
输出样例1:
Yes
输入样例2:
500
输出样例2:
No
输入样例3:
-2
输出样例3:
Invalid Value.
题目分析:
本题我们首先定义整数N,在它的给定范围内,分别求出该数的个位、十位、百位,最后用水仙花数的定义判断 N是否等于个位十位百位的立方和来确定是否为水仙花数。如果N是水仙花数,返回Yes,不是返回No,若输入不合法,返回Invalid Value.。
代码实现
#include<stdio.h>
int main()
{
int N;
scanf("%d",&N);
int a,b,c;
if(N>=100&&N<=999)
{
a=N/100; //百位
b=(N%100)/10; //十位
c=N%10; //个位
if(N==a*a*a+b*b*b+c*c*c)
{
printf("Yes");
}
else
{
printf("No");
}
}
else
{
printf("Invalid Value.");
}
}
总结
此题是一道简单的C语言编程题,但我们在理解题目的基础上同时也要掌握一定的数学知识,以便于我们解题,在本道题中,我们需要知道如何表示出各位、十位、百位,同时我们也要加强对编程的练习。