21xrx.com
2025-03-30 10:18:18 Sunday
文章检索 我的文章 写文章
C++自守数:如何判断一个数是否为自守数?
2023-07-04 20:54:14 深夜i     48     0
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++代码可以通过对数的平方的末位数字进行判断,来判断一个数是否为自守数。不同的自守数只需要改变末位数字的位数即可。在实际编程中,我们可以定义一个函数来判断一个数是否为任意位数的自守数,以提高代码复用性和可维护性。

  
  

评论区

请求出错了