怎么用C语言把n(1<=n<=6)位数都输出来?

如题所述

c语言算n^n,1<=N<=1,000,000,000

代码如下:

#include<stdio.h>
#include<math.h>
int main()
{
int i,n,flag,temp,sum=0,num=0;
printf("请输入所要求的水仙花数位数(1<=n<=6):\n");
scanf("%d",&n);
while(n<1||n>6)
{
printf("位数不正确!请重新输入(1<=n<=6):\n");
scanf("%d",&n);
}
flag=pow(10,n);
for(i=flag/10;i<flag;i++)        //从10的n-1次方到10的n次方里找n位的水仙花数
{
sum=0;                //计数清零
temp=i;                //临时数,用来替代i进行计算
while(temp!=0)    //当临时数没变成0时执行循环
{
sum+=pow((temp%10),n);    //取个位的数进行n次方,累加进sum
temp/=10;                            //去掉目前temp的个位
}
if(sum==i)            //循环过后,累加的sum值等于原值的话,满足水仙花数条件,输出数字。
{
printf("%d\n",i);
num++;                //计算当前水仙花数个数。
}
}
printf("%d位水仙花数有%d个\n",n,num);
return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答