檢查數字 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

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.