输入在一行中给出一个需要判断的整数 N(100≤N≤999)。

如果N是水仙花数,则在一行中输出Yes,否则输出No。如果N不是三位数,则输出Invalid Value.。

源代码如下:

#include <stdio.h>

int main()
{
	int number;
	printf("输入一个三位数:\n");
	scanf_s("%d", &number);
    if(N>=100&&N<=999)
    {
	    if (ifshuixianhua(number))
		    printf("YES\n");
	    else
		    printf("NO\n");
    }
    else
       printf("Invalid Value\n"); 
    
	return 0;
}

bool ifshuixianhua(int number)
{
	if (number < 100 || number>999)
		return false;
	int a = number / 100;			//百位
	int b = number / 10 % 10;		//十位
	int c = number % 10;			//个位
	if (number == a * a*a + b * b*b + c * c*c)
		return true;
	else
		return false;
}

 

#include <math.h>
#include <stdio.h>
int main()
{
int n,k,m;
scanf("%d",&n);
if(n>999 || n<100)
   printf("Invalid Value\n");
else
{
   k = n;
   int n0 = n%10;
   n/=10;
   int n1 = n%10;
   n/=10;
   m = pow(n,3)+pow(n1,3)+pow(n0,3);
   if(k==m)
      printf("Yes\n");
   else
      printf("No\n");
   
}
return 0;
}