21xrx.com
2025-04-17 09:34:24 Thursday
文章检索 我的文章 写文章
C++程序:输出100到1000的回文数
2023-07-04 18:16:27 深夜i     52     0
C++ 回文数 100 1000 输出

回文数是指正反两种顺序读都相同的整数。例如,121、41614都是回文数。你是否想过如何找出一定范围内的回文数?下面我们来分享一下使用C++程序输出100到1000之间所有回文数的方法。

首先我们需要明确,通过程序判断是否为回文数,需要将数字转换为字符串,然后进行比较。为了实现这个功能,我们可以借助C++中的stringstream类来实现数字和字符串的转换。头文件如下:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

接下来,我们需要建立一个函数来判断整数是否为回文数:

bool isPalindrome(int num) {
  stringstream ss;
  string str;
  ss << num; //将数字转换为字符串
  ss >> str;
  int len = str.length();
  for(int i = 0; i < len / 2; i++) {
    if(str[i] != str[len - i - 1]) 说明不是回文数
    
  }
  return true;
}

代码中,我们通过stringstream将整数转换为字符串,并通过循环判断字符串的前半部分和后半部分是否相等,来判断是否为回文数。如果有一个字符不相等,就说明不是回文数,返回false;如果都相等,则是回文数,返回true。

最后,我们来实现输出100到1000之间所有的回文数:

int main() {
  for(int i = 100; i <= 1000; i++) { //循环100到1000之间的整数
    if(isPalindrome(i)) //调用isPalindrome函数判断是否为回文数
      cout << i << endl; //输出回文数
    
  }
  return 0;
}

通过循环遍历100到1000之间的整数,调用isPalindrome函数判断是否为回文数,如果是则输出该数。运行程序后,我们可以得到输出结果:

101
111
121
131
141
151
161
171
181
191
202
212
222
232
242
252
262
272
282
292
303
313
323
333
343
353
363
373
383
393
404
414
424
434
444
454
464
474
484
494
505
515
525
535
545
555
565
575
585
595
606
616
626
636
646
656
666
676
686
696
707
717
727
737
747
757
767
777
787
797
808
818
828
838
848
858
868
878
888
898
909
919
929
939
949
959
969
979
989
999

可以看到100到1000之间共有105个回文数。这里只是一个简单的示例,借助C++程序输出回文数是非常有趣的,同时我们也可以将这个方法进行扩展,输出更多范围内的回文数。

  
  

评论区

请求出错了