21xrx.com
2024-12-23 01:30:27 Monday
登录
文章检索 我的文章 写文章
C++自守数:如何判断一个数是否为自守数?
2023-07-04 20:54:14 深夜i     --     --
C++ 自守数 判断

C++是一门高级编程语言,常用于开发各种应用程序和游戏。在C++中,自守数是一种有趣的数学概念。自守数,也被称为逆戴尔数、转进自守数、自指数,是指该数的平方的末位数字等于该数本身。例如,5、6、25、76、376等都是自守数。

那么,怎样用C++来判断一个数是否为自守数呢?首先,我们可以考虑将该数的平方计算出来,然后判断末位数字是否等于该数本身。具体的实现方式如下:


#include <iostream>

using namespace std;

int main()

{

  int num;

  cout << "请输入一个正整数:" << endl;

  cin >> num;

  

  int square = num * num;

  int last_digit = square % 10;

  if (last_digit == num)

    cout << num << "是自守数。" << endl;

  else

    cout << num << "不是自守数。" << endl;

  

  return 0;

}

上述代码先读入一个正整数,然后计算出它的平方并取得末位数字,最后判断该末位数字是否等于原数。若相等,则输出该数是自守数;否则输出该数不是自守数。

当然,上述方法只适用于末位数字是个位数的情况。如果末位数字超过一位,我们需要对代码进行一些修改。例如,如果需要判断一个数是否为尾两位自守数,则可以将上述代码修改为:


#include <iostream>

using namespace std;

int main()

{

  int num;

  cout << "请输入一个正整数:" << endl;

  cin >> num;

  

  int square = num * num;

  int last_two_digits = square % 100;

  if (last_two_digits == num)

    cout << num << "是尾两位自守数。" << endl;

  else

    cout << num << "不是尾两位自守数。" << endl;

  

  return 0;

}

同理,如果需要判断一个数是否为尾三位自守数,则可以将上述代码修改为:


#include <iostream>

using namespace std;

int main()

{

  int num;

  cout << "请输入一个正整数:" << endl;

  cin >> num;

  

  int square = num * num;

  int last_three_digits = square % 1000;

  if (last_three_digits == num)

    cout << num << "是尾三位自守数。" << endl;

  else

    cout << num << "不是尾三位自守数。" << endl;

  

  return 0;

}

总之,C++代码可以通过对数的平方的末位数字进行判断,来判断一个数是否为自守数。不同的自守数只需要改变末位数字的位数即可。在实际编程中,我们可以定义一个函数来判断一个数是否为任意位数的自守数,以提高代码复用性和可维护性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复