21xrx.com
2024-11-05 19:39:10 Tuesday
登录
文章检索 我的文章 写文章
C++实现输出对称数
2023-06-28 17:57:55 深夜i     --     --
C++ 输出 对称数

对称数是一种非常特殊的数字,它们的数字排列方式可以分为两部分,前半部分和后半部分,而这两个部分是完全相同的。例如,121、353、45654等都是对称数。这些数字在计算机编程中也非常有用,因为它们可能是用于密码系统等方面的重要元素。今天,我们将介绍如何使用C++编程语言来输出对称数。

首先,我们需要理解一个概念,即数字的位数。对于一个输入的数字,我们可以使用C++中的“%”运算符来计算它的位数。例如:


int n = 12345;

int count = 0;

while (n > 0) {

  count++;     // 每运行一次循环,count加1

  n /= 10;      // 把数字向右移一位

}

cout << "Number of digits: " << count << endl;

在此示例中,我们将变量n初始化为数字12345,并使用while循环计算其位数。在每次循环中,我们将变量count加1,然后将n除以10,以便将数字向右移一位。这样就可以计算出数字的位数。

接下来,我们需要定义一个函数来检查数字是否对称。这可以通过将数字的前半部分和后半部分进行比较来实现。例如:


bool isSymmetric(int n) {

  int digits = 0, number = n;

  while (number > 0) {

    digits++;

    number /= 10;

  }

  int left = n, right = 0;

  for (int i = 0; i < digits / 2; i++) {

    right = right * 10 + left % 10;

    left /= 10;

  }

  if (digits % 2 == 1)

    left /= 10;

  

  return left == right;

}

在此示例中,我们首先使用与上述示例相同的方法计算出数字的位数,然后使用for循环扫描数字的前半部分。在每次循环中,我们从左边取一个数字,并将其添加到右边,这样就可以生成数字的后半部分。最后,我们将数字的前半部分和后半部分进行比较,并返回一个布尔值来指示数字是否对称。

最后,我们可以编写一个主函数来输出所有对称数。例如:


int main() {

  for (int i = 1; i <= 10000; i++) {

    if (isSymmetric(i))

      cout << i << " is symmetric." << endl;

    

  }

  return 0;

}

在此示例中,我们使用for循环从1到10000枚举所有数字,并在每次迭代中检查该数字是否对称。如果数字对称,则输出其值和“is symmetric”字符串。这样就可以输出所有对称数。

综上所述,使用C++编程语言输出对称数非常简单。通过这种方法,我们可以学习到如何计算数字的位数,并使用for循环来检查数字是否对称。因此,无论您是初学者还是有经验的程序员,都可以使用C++完成这个项目。

  
  

评论区

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