<C语言经典100例>c11 水仙花数

来源:互联网 发布:正版天虹打带软件下载 编辑:程序博客网 时间:2024/04/30 22:28
/* 【程序11】 * 题目:打印出所有的三位“水仙花数”,并求出有多少个。所谓“水仙花数”是指一个n位数,其各位数字n次方和等于该数 本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 * 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。  */#include <stdio.h>#include <math.h>int main(int argc, char const *argv[]){int i, sum=0;for (i=100; i<1000; i++){int hun = i/100;// 百位上的数int ten = (i%100)/10;// 十位上的数int sin = i%10;// 个位上的数// double j = hun*hun*hun+ten*ten*ten+sin*sin*sin;double j = pow(hun, 3)+pow(ten, 3)+pow(sin, 3);if (i == j){printf("%d\t", i);sum++;}}printf("\n一共有%d个“水仙花数”。\n", sum);return 0;}
注意:在ubuntu下编译此程序的时候,因为有<math.h>头文件,所有编译时要加上-lm。