/***********************************************************************
目的:打印出100-999以内的“水仙花数”,所谓“水仙花数”(Narcissistic number)是指一个三位数,其各位数字立方和等于该数本身
比如:153是一个“水仙花数”,因为153 = (1 * 1 * 1)+(5 * 5 * 5)+(3 * 3 * 3)。
分析:无
平台:Visual studio 2017 && windows
*************************************************************************/
📝 实现代码1
#include<stdio.h> #include<math.h> int main() { int n = 100; while(n <= 999) { int i = n % 10;//个位 int j = n / 10 % 10;//十位 int k = n / 100;//百位 if(n == pow(i, 3) + pow(j, 3) + pow(k, 3))//同(i * i * i) + (j * j * j) + (k * k * k) { printf("%d ", n); } n++; } return 0; }
/***********************************************************************
目的:变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number:1461=1461+1461+146*1,求出5位数中的所有Lily Number
分析:无
平台:Visual studio 2017 && windows
*************************************************************************/
📝 实现代码2
#include<stdio.h> int main() { int n = 0; for (n = 10000; n <= 99999; n++) { int m = 0; int sum = 0; for (m = 10; m <= 10000; m *= 10)//拆分 { sum += ((n / m) * (n % m)); } if (n == sum) { printf("%d ", n); } } return 0; }