PTA 7-148 判断一个三位数是否为水仙花数
题目描述:
本题要求编写程序,判断一个给定的三位数是否为水仙花数。三位水仙花数,即其个位、十位、百位数字的立方和等于该数本身。
输入格式:
输入在一行中给出一个需要判断的整数 N(100≤N≤999)。
输出格式:
如果N是水仙花数,则在一行中输出Yes
,否则输出No
。如果N不是三位数,则输出Invalid Value.
。
输入样例1:
153
输出样例1:
Yes
输入样例2:
500
输出样例2:
No
输入样例3:
-2
输出样例3:
Invalid Value.
思路:
只需要知道一个结论即可:
在所有整数里面水仙花数有且只有4个:153、370、371、407.
类似题目见: PTA 7-151 找出三位水仙花数
常规代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
int sum = n;
int a = n % 10; a = a * a * a;
n /= 10;
int b = n % 10; b = b * b * b;
n /= 10;
int c = n; c = c * c * c;
if (sum < 100 || sum > 999){
cout << "Invalid Value." << endl;
return 0;
}
else if (a + b + c == sum)
cout << "Yes" << endl;
else cout << "No" << endl;
return 0;
}
小巧代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
if (n < 100 || n > 999){
cout << "Invalid Value." << endl;
return 0;
}
if (n == 153 || n == 370 || n == 371 || n == 407)
cout << "Yes" << endl;
else cout << "No" << endl;
return 0;
}