C ++中的亚当数
在本节中,我们将看到如何编写程序来检查给定数字是否为亚当数字。在深入研究代码之前,让我们看看亚当数是多少?
亚当数是一个数字,即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