输入一个x 输出共一行,包含一个字符串y,如果整数x是左右对称的,则y为"Yes",否则为"No"。

输入一个x 输出共一行,包含一个字符串y,如果整数x是左右对称的,则y为"Yes",否则为"No"。

实现思路和代码如下,望采纳

要判断一个数是否是左右对称的,我们可以将它转换为字符串,然后比较它的前半部分和后半部分是否相同。

#include <iostream>
#include <string>

int main() {
  int x;
  std::cin >> x;

  // 将x转换为字符串
  std::string s = std::to_string(x);

  // 判断字符串s的前半部分和后半部分是否相同
  bool is_symmetric = true;
  for (int i = 0; i < s.length() / 2; i++) {
    if (s[i] != s[s.length() - i - 1]) {
      is_symmetric = false;
      break;
    }
  }

  // 输出结果
  std::cout << (is_symmetric ? "Yes" : "No") << std::endl;

  return 0;
}

程序的总体时间复杂度是O(n),其中n是x的位数。

ChatGPT尝试为您解答,仅供参考

#include <iostream>
#include <string>

using namespace std;

int main() {
  // 从用户输入中读入整数x
  int x;
  cout << "请输入一个整数: ";
  cin >> x;

  // 将整数x转换为字符串
  string x_str = to_string(x);

  // 检查字符串x_str是否左右对称
  bool is_symmetric = true;
  for (int i = 0; i < x_str.length() / 2; i++) {
    if (x_str[i] != x_str[x_str.length() - 1 - i]) {
      is_symmetric = false;
      break;
    }
  }

  // 输出结果
  if (is_symmetric) {
    cout << "Yes" << endl;
  } else {
    cout << "No" << endl;
  }

  return 0;
}