#include
void main(){
int i,k,s=0,num=0;
for(i=999;i>=100;i--)
{
k=i;
while(k)
{
s+=(k%10)*(k%10)*(k%10);
k/=10;
}
if(s==i) num++;
if(num==2) break;
s=0;
}
printf("%d",i);
}
思路:先找出所有的水仙花数
然后存在数组里
之后排序并输出第n-2个数
#include
#include
using namespace std;
int st[1005];
int stn=0;
int s(int t1){
return t1*t1*t1;
}
int main(){
for(int i=100;i<1000;i++){
int t[3];
int copyi=i;
int cur=0;
while(copyi>0){
t[cur]=copyi%10;
copyi/=10;
cur++;
}
if(s(t[0])+s(t[1])+s(t[2])==i){
st[stn]=i;
stn++;
}
}
sort(st,st+stn);
printf("%d\n",st[stn-2]);
return 0;
}
可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。