带 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