牛客程式設計—迴文對稱數
阿新 • • 發佈:2020-12-19
技術標籤:牛客網刷題系列
題目描述
今天牛牛學到了迴文串,他想在數字裡面找回文,即迴文數,迴文數是正著讀與倒著讀都一樣的數,比如1221,343是迴文數,433不是迴文數。請輸出不超過n的迴文數。輸入描述: 輸入一個整數n(1 <= n <= 100000) 輸出描述: 從1開始按從小到大的順序輸出所有迴文數 示例1
輸入
10
輸出
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
int main(){
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
int temp = i;
int number = 0;
//利用while迴圈將數反轉
while (temp)
{
number = number * 10 + temp % 10;
temp = temp / 10;
}
//判斷原數和反轉數是否相等
if (number == i)
{
printf("%d\n" , number);
}
}
}
求反轉數的核心程式碼:
number = number * 10 + temp % 10;
temp = temp / 10;
下面程式碼是將一個數從個位數向更高位數逐個分離出來處理:
m = n % 10;
m = m / 10;
這個方法可以套用在類似的題目中,可以當作解題模板使用。
歡迎大家進入我的個人部落格網站一起交流討論。http://codeingshuang.com