C++程式檢查一個數是否為哈沙德數
哈沙德數是一種特殊的數。哈沙德數或尼文數是指一個數能夠被其各位數字之和整除,且餘數為零的數。在本文中,我們將學習如何檢查給定的數是否為哈沙德數。
問題描述
給定一個數,如果該數是哈沙德數或尼文數,則返回true;如果該數不是哈沙德數,則返回false。
示例1
輸入
108
輸出
yes
解釋
各位數字之和:1 + 0 + 8 = 9
現在,我們進行除法:108 ÷ 9 = 12
它可以被整除,且沒有餘數。
所以,這是一個哈沙德數。
示例2
輸入
13
輸出
no
解釋
13的各位數字之和為 1 + 3 = 4。
當13除以4時,餘數為1。
所以,這不是一個哈沙德數。
在C++中檢查哈沙德數
在C++中,為了檢查一個給定的數是否為哈沙德數,我們將使用一種簡單直接的方法。我們將使用一個變數來儲存該數的各位數字之和。現在,我們檢查該數是否可以被各位數字之和整除。如果該數可以被各位數字之和整除,則列印“是的,這是一個哈沙德數”,否則列印“不,這不是一個哈沙德數”。
C++程式檢查哈沙德數
#include <bits/stdc++.h>
using namespace std;
int main() {
int number = 108;
int temp = number;
int sum = 0;
while (temp != 0) {
sum += temp % 10;
temp /= 10;
}
if (number % sum == 0) {
cout << "yes, this is a Harshad number" << "\n";
} else {
cout << "no, this is not a Harshad number" << "\n";
}
return 0;
}
輸出
yes, this is a Harshad number
時間和空間複雜度
時間複雜度:O(n),因為我們正在尋找各位數字之和。
空間複雜度:O(1),常數空間。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP