博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
打印0~n之间的水仙花数。
阅读量:7155 次
发布时间:2019-06-29

本文共 621 字,大约阅读时间需要 2 分钟。

#include<stdio.h>

#include<stdlib.h>
#include<math.h>

int main()

{
int i, j;
int n, tmp[40] = { 0 }, count = 0, sum = 0;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
for (j = i; j ; j /= 10)
{
tmp[count] = j % 10;
count ++;
}
for (j = 0; j < count; j++)
{
sum += pow(tmp[j], count);
}
if (sum == i)
printf("%d\n", i);
count = 0;
sum = 0;
}
system("pause");
return 0;
}

思路:想要打印0~n之间的水仙花数,那就得先判断某一个数 i 是否为水仙花数。通过数位遍历将 i 的每一位数字取出,再使用迭代算出每位数字的次方和并与原数字 i 进行对比,如果相等即为水仙花数。再通过for循环将0~n直接的数挨次遍历,打印出0~n之间的水仙花数。

注:由于0~n之间的数字繁多,所以在判断某一个数 i 是否为水仙花水时再定义一个count,再取出 i 的每位上数字的同时来计算出循环次数即 i 的数位。

转载于:https://blog.51cto.com/14233687/2366908

你可能感兴趣的文章
接口封装映射出的一些问题
查看>>
zencart批量表上传后 标题显示为网址 批量修改标题状态 SEO三要素
查看>>
BZOJ2298:[HAOI2011]problem a(DP)
查看>>
tab选项卡
查看>>
MySQL外键的三种关系
查看>>
索贝非编改bug定位
查看>>
HDU-1151-AirRaid(最小路径覆盖)
查看>>
由QBrush引发的挫折
查看>>
触碰jQuery:AJAX异步详解
查看>>
【leetcode】1053. Previous Permutation With One Swap
查看>>
linux复制文件夹到另一个文件夹并排除一个文件夹
查看>>
sqlite基础API
查看>>
jsp-九大内置对象
查看>>
文本占用的高度和范围
查看>>
6.彻底搞懂javascript-作用域链
查看>>
MVVM架构:LiveData,ViewModel,kotlin,kotlin协程,DataBinding等
查看>>
【BZOJ】2038: [2009国家集训队]小Z的袜子(hose)
查看>>
vue part3.2 小案例 todo 列表展示删除
查看>>
【CodeForces】915 E. Physical Education Lessons 线段树
查看>>
Vue 源码剖析 —— 数组变化侦测
查看>>