水仙花和变种水仙花

简介: 水仙花和变种水仙花


/***********************************************************************

目的:打印出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;
}


相关文章
|
6月前
【刷题日志】深度理解除(/)与取模(%)附水仙花数以及变种水仙花数题解
【刷题日志】深度理解除(/)与取模(%)附水仙花数以及变种水仙花数题解
|
2月前
水仙花数
水仙花数。
87 7
|
6月前
|
C++
水仙花数.
这是一个关于求解水仙花数的C++代码片段。水仙花数是指3位数,其各位数字立方和等于该数本身,如153。代码通过循环遍历100到999,拆分每位数字并计算立方和,如果满足条件则输出该数。解题关键在于对三位数的个位、十位、百位进行拆分和立方运算。
67 0
|
6月前
|
算法 C语言
(“拨”取数字的典例:N位水仙花数判断及水仙花数变种)
这篇内容介绍了如何判断和生成水仙花数,水仙花数是一个n位数,其各位数字的n次方之和等于该数本身。文章首先回顾了"拨数"的概念,然后通过实例展示了如何判断三位水仙花数,并将其推广到任意位数的水仙花数。作者提供了详细的解题思路和代码示例,强调了解决这类问题时要慢下来,分步骤分析问题。最后,文章还探讨了一个水仙花数的变种问题,即数字拆分后乘积之和等于原数的情况。
162 0
求1000以内所有的水仙花数
求1000以内所有的水仙花数
|
C语言
【C语言初学必看】水仙花数、变种水仙花数背后的知识
【C语言初学必看】水仙花数、变种水仙花数背后的知识
145 0
变种水仙花数
变种水仙花数
59 0
找出水仙花数
找出水仙花数
80 0
|
算法
求水仙花数
求水仙花数
75 0
7-150 水仙花数
7-150 水仙花数
48 0