C++ 阿达姆数
阿达姆数是一个数字,其平方是其倒序平方的倒序。
概念说明 - 对于一个数字是阿达姆数,该数字的平方是该数字倒序平方的倒序。举个例子:
12 为数字。12 的平方为 144,12 的倒序为 21。21 的平方即 21 的倒序平方为 441。441 是 144(12 的平方)的倒序。
检查数字是否为阿达姆数的算法 -
- 给定数字 xy,求其平方数 (xy)2。
- 对于 xy,颠倒数字顺序 -> yx。
- 现在,对于数字 yx,求其平方数 (xy)2。
- 颠倒 (xy)2 的数字顺序并与 (yx)2 评估。
- 如果两者相等,则该数字为阿达姆数。
示例
#include <iostream> using namespace std; int reverseDigits(int num) { int rev = 0; while (num > 0) { rev = rev * 10 + num % 10; num /= 10; } return rev; } int main() { int num = 31; cout<<num<<" is "; int rev = reverseDigits(num); if ( (num*num) == (reverseDigits(rev*rev)) ) cout << "Adam Number"; else cout << "not an Adam Number"; return 0; }
输出
31 is Adam Number
广告