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),常數空間。

AYUSH MISHRA
AYUSH MISHRA

工程師

更新於: 2024年11月21日

1 次檢視

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告