c语言水仙花数函数专题 c语言上机报告之水仙花数

C语言 水仙花数 编程题你没有循环啊.
if (t=n)
{
for(; t=n; t)
{
p=judge(t);
if(p==1)
{
printf("%d", t);
printf(" ");
flag=flag 1;
}
}
}
else
{
if(flag==0) printf("no\n");
else printf("\n");
}
c语言编程调用函数求水仙花数水仙花数是指一个 n 位数 ( n≥3 )c语言水仙花数函数专题,每个位上c语言水仙花数函数专题的数字的 n 次幂之和等于它本身 。(例如c语言水仙花数函数专题:1^35^33^3 = 153) 。
所以可以依次通过模除求得每个位上的值c语言水仙花数函数专题,然后做n次幂后相加c语言水仙花数函数专题,再判断是否与本身相等,从而得到是否为水仙花数的结论 。
以求所有三位数水仙花数为例,代码如下,其它相似 。
#includestdio.h
#includestdlib.h
#includestdbool.h
int cube(const int n){//计算立方 。如果是四位则是四次方,以此类推 。
return n*n*n;
}
int isNarcissistic(const int n){//计算是否为水仙花数 。
int hundreds=n/100;//百位
int tens=n/10-hundreds*10;//十位
int ones=n;//个位
return cube(hundreds) cube(tens) cube(ones)==n;//如果相等,则为水仙花数 。
}
int main(void){
int i;
for(i=100;i1000;i){//对所有三位数判断 。
if(isNarcissistic(i))//如果是则输出 。
printf("%d\n",i);
}
return 0;
}
c语言水仙花数#include stdio.h
int main()
{
int start, end, i = 0, a, b, c, size = 0;
while (scanf("%d %d", start, end) == 2)
{
for (i = start; i = end; i)
{
a = i / 100;
b = i / 10 % 10;
c = i % 10;
//total = pow(c, 3)pow(a, 3)pow(b, 3);
if ((a*a*ab*b*bc*c*c) == i)//满足水仙花条件
{
if (size == 0)//size=0输出第一个水仙花数
{
printf("%d", i);
}
else//size输出第二 。。第n个水仙花数
{
printf(" %d", i);
}
size;//个数;
}
}
if (size == 0)//范围内个数为0,则说明没有满足条件的
{
printf("no");
}
printf("\n");
}
return 0;
}
扩展资料:
需要注意的地方:
1.将n整除以100,得出n在百位上的数字hun 。
2.将(n-i*100)整除以10(或将n先整除以10再对10求模n/10),得出n在十位上的数字ten 。
3.将n对10取余 , 得出n在个位上的数字ind 。
4.求得这三个数字的立方和是否与其本身相等,若相等 , 则该数为水仙花数 。
参考资料:
百度百科-水仙花数
【c语言水仙花数函数专题 c语言上机报告之水仙花数】c语言水仙花数函数专题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言上机报告之水仙花数、c语言水仙花数函数专题的信息别忘了在本站进行查找喔 。

    推荐阅读