水仙花数(C语言)
文章目录
- 水仙花数(C语言)
- 前言
- 一、题目
- 二、解题思路
- 代码
- 运行结果
- 总结
- ***根据水仙花数满足的条件找出需要求的对象,这里是各位上的位数。***
前言
刘汝佳算法书《算法竞赛入门经典》第二章上机练习第二题
一、题目
输出100~999中的所有水仙花数。若三位数ABC满足ABC=A3+B3+C3,则称其为水仙花数。例如:153=13+53+33,所以153是水仙花数。
二、解题思路
求水仙花数最重要的就是求出该数的每一位上的数,求出这些,问题便迎刃而解了。
代码
//水仙花数
#include<stdio.h>
#define f(x) x*x*x //求三次方时可以节省打代码的时间
int main(void)
{int i;for(i=100;i<=999;i++){int a,b,c; //a,b,c求各位上的数a=i/100; b=i/10%10;c=i%10;if(i==f(a)+f(b)+f(c))printf("%-5d",i); //用宏定义求三次方,判断是否满足水仙花数的条件,若满足,则输出。}return 0;
}