Disarium Number 与 C++ 中的示例?
一个数字的数字之和以其各自的位置为幂等于该数字本身的数字称为disarium数字。
该noOfDigits(intnum)函数获取数字并通过不断将数字除以10来返回数字的位数,而只剩下一个位。在每次迭代中,digits变量会递增以保持数字跟踪,并在while循环结束后返回。
int noOfDigits(int num){ int digits = 0; int temp = num; while (temp){ temp= temp/10; digits++; } return digits; }
接下来,isDisarium(intnum)是一个布尔函数,它接受这个数字并检查它是否是一个Disarium数字。它通过数字mod10取最右边的数字,并将其供电到数字系统中的数字位置。然后将通过为数字供电的结果添加到总和中。while循环一直运行到没有数字为止。如果总和等于num,则返回true,否则返回false。
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#include 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 < 输出结果 上面的代码将产生以下输出-
518 is a Disarium Number