0
已解决
蔡文博
修练者
修练者
#include<bits/stdc++.h>
using namespace std;
int n[10001],i=1;
string str[10001];
int main()
{
do
{
if(pow(n[i]%10,3)+pow(int(n[i]/10),3)+pow(int(n[i]/100),3)==n[i])
str[i]="YES";
else
str[i]="NO";
++i;
}
while(cin>>n[i]&&n[i]);
i=1;
while(str[i+1].size()!=0)
{
cout<<str[i]<<endl;
++i;
}
return 0;
}
//20分
题目描述 Description
请判断一个数是不是水仙花数。 其中水仙花数定义各个位数立方和等于它本身的三位数。
输入描述 Input Description
有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000)
输入0表示程序输入结束。
输出描述 Output Description
如果n是水仙花数就输出YES
否则输出NO
样例输入 Sample Input
153
154
0
样例输出 Sample Output
YES
NO
0
0
0
张韬
资深守护
资深守护
先取出这个三位数的每一位,再把每一位乘三次,比如x,就是X*X*X,再把每一位乘三次的结果相输出加,如果是水仙花数就输出:“yes”,否则,输出:“no”;
这是取位数的方法:
while(n!=0){
a=n%10;
b=n/10%10;
c=n/100%10;
}
后面的自己想;
反正我是一百分;
0
0
时梓繁
修练者
修练者
http://wenda.codingtang.com/questions/3761/
时梓繁在2019-01-12 13:54:26追加了内容
0
0