帶 C++ 示例的 Disarium 數?
如果數字與其各數字位置的乘積的總和等於該數字本身,則稱該數字為 Disarium 數。
noOfDigits(int num) 函式獲取數字並透過持續對數字除以 10 來返回數字的位數,直到僅剩一位為止。每次迭代,變數 digits 都會遞增以記錄位數,並在 while 迴圈結束時返回。
int noOfDigits(int num){
int digits = 0;
int temp = num;
while (temp){
temp= temp/10;
digits++;
}
return digits;
}接下來,isDisarium(int num) 是一個布林函式,獲取數字並檢查它是否為 Disarium 數。它透過 number mod 10 獲取最右側的數字,並將其乘方為 number system 中的數字位置。然後將乘方的結果新增到 sum 中。while 迴圈一直執行,直到沒有剩餘數字。如果 sum 等於 num,則返回真,否則返回假。
isDisarium(int num){
int digits = noOfDigits(num);
int sum = 0;
int temp = num;
while (temp){
int rightDigit = temp%10;
sum = sum + pow(rightDigit, digits--);
temp = temp/10;
}
return (sum == num);
}示例
讓我們看看以下檢查數字是否為 Disarium 數的實現。
#include<iostream>
#include<math.h>
using namespace std;
int noOfDigits(int num){
int digits = 0;
int temp = num;
while (temp){
temp= temp/10;
digits++;
}
return digits;
}
bool isDisarium(int num){
int digits = noOfDigits(num);
int sum = 0;
int temp = num;
while (temp){
int rightDigit = temp%10;
sum = sum + pow(rightDigit, digits--);
temp = temp/10;
}
return (sum == num);
}
int main(){
int num = 518;
if( isDisarium(num))
cout <<num<<" is a Disarium Number"<<endl;
else
cout << num<<" is not a Disarium Number"<<endl;
return 0;
}輸出
以上程式碼將產生以下輸出 −
518 is a Disarium Number
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP