3个回答
展开全部
楼主你好~
根据要求,代码如下:
#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;
}
希望楼主能看懂哈~祝楼主学习进步~~
根据要求,代码如下:
#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;
}
希望楼主能看懂哈~祝楼主学习进步~~
展开全部
#include "stdio.h"
main()
{
int i,b1,b2,b3;
for(i=100;i<999;i++)
{
b1=i%10;
b2=i/10%10;
b3=i/100;
if(pow(b1,3)+pow(b2,3)+pow(b3,3)==i)
printf("%d",i);
}
getch();
}
给您参考三位数的水仙花数。
希望对您有所帮助!
main()
{
int i,b1,b2,b3;
for(i=100;i<999;i++)
{
b1=i%10;
b2=i/10%10;
b3=i/100;
if(pow(b1,3)+pow(b2,3)+pow(b3,3)==i)
printf("%d",i);
}
getch();
}
给您参考三位数的水仙花数。
希望对您有所帮助!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-11-11
展开全部
什么时候要?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询