用c语言编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值。所谓水仙花数是指三

2024-12-03 16:02:04
推荐回答(3个)
回答1:

#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);
}

回答2:

思路:先找出所有的水仙花数

然后存在数组里

之后排序并输出第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;
}

回答3:

可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  • c语言
  • 水仙花数