python水仙花数的编程是什么?

Python08

python水仙花数的编程是什么?,第1张

def demo():

  temp = []

  for i in range(100, 1000):

      a = i // 100 # 百位

      b = i // 10 % 10 # 十位

      c = i % 10 # 个位

      if a ** 3 + b ** 3 + c ** 3 == i:

          temp.append(str(i))

  return ",".join(temp)

print("1000以内的水仙花数有:{}".format(demo()))

用C语言实现水仙花数:

#include <stdio.h>

#include <stdlib.h>

int main()

{

  int i,j,k,n

  printf("'water flower'number is:")

  for(n=100n<1000n++)

  {

      i=n/100/*分解出百位*/

      j=n/10%10/*分解出十位*/

      k=n%10/*分解出个位*/

      if(n==i*i*i+j*j*j+k*k*k)

      {

          printf("%-5d",n)

      }

  }

  printf("\n")

  return 0

}

求满足如下条件的3位正整数,它除以9的商等于它的个位数字的平方和。例如224,它除以9的商为24,它的每一位数(2、2和4)的平方和也是24。

算法思路:首先,我们用range函数遍历所有的3位数,按照range(x,y)函数的语法规则,要包含所有的3位整数100~999,range函数的参数x、y应该分别取值为100和1000,即range(100,1000),然后分别计算3位数的个位、十位和百位数。计算的方法可以参考下面代码的变量a、b和c的计算方法,然后再计算出它们的平方和,最后,比较每位数的平方和是否等于此数除以9的商,如果是就输出这个数。代码如下:

程序运行结果:

132

224

315

453

535

561

635

661

753

805

815