水仙花和变种水仙花
Posted 跳动的bit
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了水仙花和变种水仙花相关的知识,希望对你有一定的参考价值。
/***********************************************************************
目的:打印出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;
}
以上是关于水仙花和变种水仙花的主要内容,如果未能解决你的问题,请参考以下文章
java代码:用for循环求和,求偶数和,求奇数和,打印水仙花数,统计水仙花数
打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3。(示例代码