c语言求水仙花数!!!!

输入n(3<=n<=7),输出所有n位的水仙花数,如输入3则输出153,370,371,407;5则输出54748,92727,93084;... 输入n(3<=n<=7),输出所有n位的水仙花数,如输入3则输出153,370,371,407;5则输出54748,92727,93084; 展开
 我来答
徭庸学凝洁
2019-07-26 · TA获得超过3907个赞
知道大有可为答主
回答量:3090
采纳率:29%
帮助的人:238万
展开全部
你在定义变量的时候多定义一个整型变量
count用来计数;count初值设为0

if(a*a*a+b*b*b+c*c*c==i)
printf("%d\t",i);
在if里再加一条语句,count=count+1;即
if(a*a*a+b*b*b+c*c*c==i)
{
printf("%d\t",i);

count=count+1}
printf("水仙花的个数为:%d",count);
就可以了
White_MouseYBZ
2018-11-13 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6650万
展开全部
#include "stdio.h"
int main(int argc,char *argv[]){
int n,i,j,k,t,s,m,x;
printf("Please enter n(int 2<n<8)...\nn=");
if(scanf("%d",&n)!=1 || n<3 || n>7){
printf("Input error, exit...\n");
return 0;
}
for(k=1,i=0;i<n;i++,k*=10);
for(i=k/10;i<k;i++){
for(s=0,t=i;t>0;t/=10){
for(x=1,j=t%10,m=n;m--;x*=j);
s+=x;
}
if(s==i)
printf("%d\t",s);
}
printf("\n");
return 0;
}

运行样例:

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3cffda32a1
2018-11-13 · TA获得超过2017个赞
知道大有可为答主
回答量:1860
采纳率:83%
帮助的人:1094万
展开全部
#include <cstdio>
#include <cmath>

int count(long long a) {
return (a>=0&&a<=9)?1:count(a/10)+1;
}

long long sum(long long a) {
   int n=count(a);
   long long s=0;
   for(int i=1; i<=n; i++)
      s+=pow((int)(a/pow(10,i-1))%10,n);
   return s;
}

int main() {
   for(int n;scanf("%d",&n);){
for(long long i=pow(10,n-1); i<=pow(10,n); i++)
if(i==sum(i)) printf("%d ",i);
printf("\n\n");
   }
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1024程序员
2020-03-02 · TA获得超过374个赞
知道答主
回答量:457
采纳率:0%
帮助的人:23.3万
展开全部

C语言经典案例之水仙花数

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式