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

更新日期: 2019 年 07-10 月

2K+ 查看次数

启动您的 事业

完成课程即可获得认证

开始
广告