HDU2010 水仙花数(C++)
问题链接
[link] http://acm.hdu.edu.cn/showproblem.php?pid=2010
做题思路
-求出数值的每一位,并进行结果的判断
额外知识
如果在最后一个水仙花数值的输出之后输出空格,则会报错Presentation Error
Presentation Error:你的程序运行的结果是正确的,但是格式和正确结果有点不一样。比如中间多了回车或者空格,请仔细检查程序的输出部分,离AC就差一点点啦!
Presentation Error的一般原因?
一般原因:
1.格式问题要注意 每行最后要有回车,并且行末不能有多余的空格。
格式错误,请仔细检查case末的空行、case间的空行、每一行后的空格,等这些地方,看与题目描述是否一致。
2.答案正确,但格式不对。
可能是多输出了space/tab/return
有人也说只有三种情况:
1空行问题
2大小写问题
3空格问题
所以又pe说明你没有根本错误,就是一些细节有错误。
解题代码
#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
int main(){
//输出水仙花数
int m,n;
while(cin>>m>>n){
int count=0;
bool flag=false;
for(int i=m;i<=n;i++){
int sum=0;
int a=0;
int b=i;
while(b){
a=b%10;
b=b/10;
sum+=pow(a,3);
}
if(sum==i){
if(flag){
cout<<" ";
}
cout<<i;
count++;
flag=true;
}
}
if(count==0){
cout<<"no";
}
cout<<endl;
}
}