打印 1 到 100 之间的所有卡普雷卡数(Kaprekar number)的程序

2025 年 1 月 8 日 | 3 分钟阅读

如果一个非负整数(基数为 10)的平方表示可以被分成两部分,这两部分相加等于原数,并且低位数字组成的部分非零(但允许包含前导零),则该数为 Kaprekar 数。

示例

45 =  (45)2 = 2025 =20 + 25 -45
1 = 12 = 01 = 0 + 1 = 1

算法

main()

  • 步骤 1: 开始
  • 步骤 2: 重复步骤 3 直到 (i<10)
  • 步骤 3: 如果 (Kaprekar(i)) 则打印 i
  • 步骤 4: 结束

Kaprekar(int n)

  • 步骤 1: 开始
  • 步骤 2: 如果 (n==1) 返回 true
  • 步骤 3: sq_n = n*n
  • 步骤 4: 设置 count_digits = 0
  • 步骤 5: 重复步骤 6 和 7 直到 (sq_n!=0)
  • 步骤 6: count_digits++
  • 步骤 7: sq_n/=10
  • 步骤 8: sq_n = n*n
  • 步骤 9: 重复步骤 10 到 13 直到 r_digits<count_digits
  • 步骤 10: eq_parts = (10)r_digits
  • 步骤 11: 如果 (eq_parts==n) 则继续
  • 步骤 12: sum = sq_n/eq_parts + sq_n%eq_parts
  • 步骤 13: 如果 (sum==n)
    则返回 true
  • 步骤 14:返回 false。
  • 步骤 15:结束

Java 程序

输出

9  10  45  55  99 

Python 程序

输出

9  10  45  55  99

C 语言程序

输出

9  10  45  55  99 

C# 程序

输出

9  10  45  55  99

PHP 程序

输出

9  10  45  55  99 
下一主题#