在本节中,我们将看到如何编写程序来检查给定数字是否为亚当数字。在深入研究代码之前,让我们看看亚当数是多少?
亚当数是一个数字,即n,那么如果n的平方和n的平方相反,则该数字就是亚当数。例如,让我们考虑一个数字13。反数为31。然后13的平方为169,而31的平方为961。169和961彼此相反,因此数字13为亚当数。
检查给定数字是否为不是的亚当数的步骤-
取数字n
倒数并存入m
获取n的平方并存储到sq_n中
取得m的平方并将其存储到sq_m
检查sq_n和sq_m的反向是否相同。
#include<iostream>
using namespace std;
int reverseNumber(int num) {
int res = 0;
while(num != 0) {
res = res * 10 + num % 10; //cut last digit and add into the result
num /= 10; //reduce the number
}
return res;
}
bool checkAdamNumber(int num) {
int rev_num = reverseNumber(num);
//得到数字的平方和反数字
int sq_num = num * num;
int sq_rev_num = rev_num * rev_num;
//如果sq_num和sq_rev_num彼此相反,则它们是亚当编号。
if(sq_num == reverseNumber(sq_rev_num)) {
return true;
}
return false;
}
main() {
int num;
cout << "输入一个数字以检查它是否是亚当编号:";
cin << num;
if(checkAdamNumber(num)) {
cout << "The number is an Adam number";
} else {
cout << "The number is not an Adam number";
}
}输出结果
输入一个数字以检查它是否是亚当编号:13 The number is an Adam number
输出结果
输入一个数字以检查它是否是亚当编号:25 The number is not an Adam number