C++ 中检查一个数是否为 Harshad 数的程序

2025年5月10日 | 阅读 4 分钟

能被其数字之和整除的数称为“哈沙德数”“尼文数”。例如,18 是一个哈沙德数,因为 1 + 8 = 9,而 18 可以被 9 整除。这个 C++ 程序检查一个整数是否为哈沙德数。为了确定一个整数是否可被整除,它首先接受该整数作为输入,然后利用循环计算其数字之和。如果输入是哈沙德数,软件会输出该信息。这个练习有助于练习 C++ 概念,例如循环、算术运算和条件逻辑。

  • 向用户请求一个数字。
  • 找出其数字之和。
  • 检查该整数是否可以被其数字之和整除。
  • 通过显示结果,指示输入数字是否为哈沙德数。

关键概念

  • 算术运算:使用模运算和除法运算将整数分解为各位数字。
  • 循环结构:使用循环计算数字之和。
  • 条件语句:确认整数是否可被其数字之和整除。
  • 输入-输出操作包括:显示人机交互的结果。

问题描述

我们得到一个数字,如果它是哈沙德数或尼文数,我们必须返回 true;否则返回 false。

示例 1

说明

数字之和:2 + 0 + 7 = 9

现在,我们进行除法:207 ÷ 9 = 23

它完全可被整除,没有余数。

所以,这是一个哈沙德数。

示例 2

说明

数字之和:3 + 5 = 8

现在,我们进行除法:35 ÷ 9 = X

它不能完全被整除,有余数。

所以,这不是一个哈沙德数。

示例代码 1

让我们举个例子来检查一个数字是否是 C++ 中的哈沙德数

输出

 
Enter a number: 78
78 is not a Harshad Number.
Enter a number: 45
45 is a Harshad Number.   

示例代码 2

让我们再举一个例子来检查一个数字是否是 C++ 中的哈沙德数。

输出

 
Enter a number: 207
207 is a Harshad Number.
Enter a number: 21
21 is not a Harshad Number   

说明

  • 它使用 sumOfDigits 函数计算指定数字的数字之和。
  • 检查该数字是否可被其数字之和整除。
  • 主程序通过使用这些函数来判断和显示结果,使代码更具可读性和可重用性。

结论

总而言之,一个确定给定数字是否为哈沙德数C++ 程序展示了基本的编程思想,例如条件语句、循环和算术运算。该程序通过将其分解为两个不同的步骤:计算数字之和和确认可整除性,提供了一种简单而高效的计算方法来解决数学问题。正如第二个示例所示,模块化编码使程序更易于阅读和重用。通过研究数论和加强对基本编程原则的理解,这些任务有助于初学者培养逻辑推理和编码技能。