检查数字 N 的各位数字之和是否能整除它


数字 N 是一种特殊的整数类型,它计算个位数的和。因此,这个和将能被它本身整除。

让我们来看一个例子。

给定的整数,N = 36

各位数字之和,3 + 6 = 9

因此,36 可以被 9 整除,验证了 N 能被其各位数字之和整除。

算法

以下步骤:

步骤 1:我们首先声明头文件 iostream。

步骤 2:常用匹配:

  • 然后使用函数定义 `digit_sum()`,它接受一个整型变量 n 作为参数来计算各位数字之和。[示例 1]

  • 在示例 2 中,逻辑部分相同,只是函数定义的名称不同,即 `sum_of_digits`。[示例 2]

步骤 3:函数将变量 sum 初始化为 0,用于跟踪各位数字之和。

步骤 4:程序使用 while 循环,条件设置为 n > 0。如果 n 值大于 0,则继续执行循环内部的代码。然后使用运算符 % 和 /= 计算各位数字之和的验证。

步骤 5:函数简单地返回变量 sum,其中包含个位数之和的计算结果。

步骤 6:然后它将使用另一个函数定义 `check_divisibility_of_digit()`,它接受变量 n 作为参数,并通过引用调用 `digit_sum()` 函数以及一些运算符来返回函数。[示例 1]

步骤 7:现在开始主函数,并初始化变量 N 以设置整数的值。

步骤 8

  • 接下来,它使用 if-else 语句调用函数来检查给定数字的各位数字之和是否能被自身整除。[示例 1]

  • 接下来,它将在变量 sum 中使用调用函数 `sum_of_digits()`。然后 sum 将在 if-else 语句中用于检查各位数字之和是否能被自身整除。[示例 2]

示例

程序使用 while 循环计算各位数字之和,而 if-else 语句将用于使用调用函数设置条件。通过这种方式,它将检查数字 N 的各位数字之和是否能整除它本身。

#include <iostream>
using namespace std;
// This function is used to calculate the sum of the digit
int digit_sum(int n) {
  int sum = 0;
  while (n > 0) {
    sum += n % 10;
    n /= 10;
  }
  return sum;
}
// taking function reference in the return statement
bool check_divisibility_of_digit(int n) {
  return n % digit_sum(n) == 0;
}
// Start the main function
int main() {
  int n = 48;
  if (check_divisibility_of_digit(n)) {
    cout << "The given number is divisible by its sum" << endl;
  } else {
    cout << "The given number not divisible by its sum" << endl;
  }
  return 0;
}

输出

 The given number is divisible by its sum

示例

在下面的示例中,我们将使用简单的 while 循环来设置各位数字之和的计算操作。在主函数中,它使用调用函数和 if-else 语句来设置特定条件和操作以获得结果。

#include <iostream>
using namespace std;
// recursive function
int sum_of_digits(int n) {
  int sum = 0;
  while (n > 0) {
    int digit = n % 10;
    sum += digit;
    n /= 10;
  }
  return sum;
}
// Start the main function
int main() {
  int n = 42;
// Calling function
  int sum = sum_of_digits(n);
  if (n % sum == 0) 
  {
    cout << "The given input of sum is satisfied for division." << endl;
  } 
  else 
  {
    cout << "The given input of sum is not satisfied for division." << endl;
  }
  return 0;
}

输出

 The given input of sum is satisfied for division.

结论

各位数字之和是指其数字相加之和能被自身整除的数字。程序使用简单的 while 循环迭代输入数字 N 以找到总和。之后,它在主函数中使用一些运算符,例如取模 (%) 和等于 (==),在 if-else 语句中进行特定的操作。

更新于:2023年8月17日

浏览量:159

开启你的职业生涯

完成课程获得认证

开始学习
广告