C++ 求水仙花束的程序

来源:百度知道 编辑:UC知道 时间:2024/06/03 22:08:21
请写出程序代码

/*
2. 编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值。
所谓水仙花数是指三位整数的各位上的数字的立方和等于该整数本身。
例如:153就是一个水仙花数: 153 = 1^3 + 5^3 + 3^3

*/
#include <iostream>
using namespace std;

int flower(int n);
int main()
{
int i,max1=0,max2=0; // max1--最大值 max2---次大值
cout<<"水仙花数为: ";
for(i=100;i<1000;i++){
if(flower(i)){
cout<<i<<" ";
if(i>max1){
max2=max1;
max1=i;
}
else if(i<max1&&i>max2)max2=i;
}
}
cout<<"\n"<<"最大为:"<<max1<<"\n"<<"次大值为: "<<max2<<"\n";

return 0;
}

int flower(int n)
{ //判断n是否为水仙数
int hun,ten,k;
hun=n/100;
ten=(n-100*hun)/10;
k=n%10;
if(n==hun*hun*hun+ten*ten*ten+k*k*k)return 1;
else return 0;

}