牛客網刷題 | BC97 回文對稱數

目前主要分為三個專欄,后續還會添加:

? ? ? ? 專欄如下:?? ? ? ? ? ? ? ??C語言刷題解析? ? ? ?C語言系列文章? ? ? ?我的成長經歷

感謝閱讀!

初來乍到,如有錯誤請指出,感謝!


描述

今天牛牛學到了回文串,他想在數字里面找回文,即回文數,回文數是正著讀與倒著讀都一樣的數,比如1221,343是回文數,433不是回文數。請輸出不超過n的回文數。

輸入描述:

輸入一個整數n(1 <= n <= 100000)

輸出描述:

從1開始按從小到大的順序輸出所有回文數

示例1


思路 :?

可以使用用數組存放數據的操作

將1-100000中所有的數字都遍歷出來

然后判斷數組的下標 是否相等

------------------------------------------------

操作起來有點復雜 還是用取模和取余運算吧

其中要注意的是 9999 99999 這種大的數字 9889 98889 這種也算是回文數

問題定義

輸入:一個整數?𝑛n,范圍是?1≤𝑛≤1000001≤n≤100000。

輸出:所有不超過?𝑛n?的回文數,按從小到大的順序輸出。

算法設計

遍歷:從 1 開始遍歷到?n,檢查每個數是否為回文數。

回文數檢查:對于每個數?x,我們可以通過以下步驟檢查它是否是回文數:

轉換為字符串:將整數?x?轉換為字符串。

反轉字符串:反轉字符串。

比較:比較原始字符串和反轉后的字符串是否相同。

優化:實際上,我們不需要將整個字符串反轉,只需要反轉一半,然后比較前半部分和后半部分是否相同。

數據結構選擇

使用一個整數變量來存儲當前遍歷的數。

使用一個字符串來存儲整數的字符表示形式。

算法實現

初始化:設置一個整數變量?i?從 1 開始。

循環:使用?for?循環遍歷從 1 到?n?的所有整數。

轉換為字符串:將當前整數?i?轉換為字符串。

反轉字符串:編寫一個函數來反轉字符串的一半。

比較:比較原始字符串和反轉后的字符串。

輸出:如果相等,說明是回文數,輸出該數。


?代碼 1 :

/*      思路 : 可以使用用數組存放數據的操作將1-100000中所有的數字都遍歷出來然后判斷數組的下標 是否相等------------------------------------------------操作起來有點復雜 還是用取模和取余運算吧
*/// # include <stdio.h>
// int main ()
// {
//     int a,b,c,d,e,f;//     return 0;
// }# include <stdio.h>
int main ()
{int n = 0;scanf("%d",&n);for(int i=1;i<=n;i++){if (i<10) {printf("%d\n",i);}else if (i<100) {if (i%10==i/10) {printf("%d\n",i);}}else if (i<1000) {if (i%10==i/100) {printf("%d\n",i);}}else if (i<10000) {if (i%10==i/1000&&i/100%10==i/10%10) //9999 9889 包括這樣{printf("%d\n",i);}}else if (i<100000) {if (i%10==i/10000&&i/1000%10==i/10%10) //99999 98889{printf("%d\n",i);}}}return 0;
}

代碼 2 :

使用數組的方法來寫

int main ()
{int n,i,a,b[10],c=0;scanf("%d",&n);for(i=1;i<=n;i++){a=i;\\把數保存到一個變量中for(int k=0;;k++){b[k]=a%10;\\將每一位數保存到數組中a=a/10;c=c*10+b[k];if(a==0)break;}if(c==i)printf("%d\n",i);}return 0;
}

代碼 3 :

相對復雜

#include <stdio.h>
#include <string.h>char *my_itoa(int value, char *str, int radix)
{static char dig[] ="0123456789""abcdefghijklmnopqrstuvwxyz";int n = 0, neg = 0;unsigned int v;char *p, *q;char c;/* 負數:十進制直接在前面加負號,其它進制用補碼 */if (radix == 10 && value < 0){v = -value;neg = 1;}else{v = value;}/* 其它進制的負數轉為unsigned int類型,即取了補碼 */do{str[n++] = dig[v % radix];v /= radix;} while (v);if (neg)str[n++] = '-';str[n] = '\0';/* 字符串反轉 */for (p = str, q = p + (n - 1); p < q; ++p, --q)c = *p, *p = *q, *q = c;return str;
}void fun(long n)
{char num[7];int i, j;my_itoa(n, num, 10); //將整形n,以十進制存入num中;for (i = 0, j = strlen(num) - 1; i <= j; i++, j--){if (num[i] != num[j])break;}if (i >= j){printf("%d ", n);}
}int main()
{long n = 0;long i = 0;scanf("%ld", &n); // 12321;for (i = 1; i <= n; i++)fun(i);return 0;
}

擴展:取模與取余

m % 10:取模運算,用于獲取數字m的最低位。

m /= 10:整數除法運算,用于去掉數字m的最低位。

之前文章里面有提過

這里就不贅述了

??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16531.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16531.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16531.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鎖相環的一些學習筆記--(1)

下圖兩組1.2.3可以對應起來&#xff1b; 一些分析&#xff1a; 1.根據這個可知最后vco_voltage停在0.5v 參考資料&#xff1a; 1. Matlab https://www.bilibili.com/video/BV1bR4y1Z7Xg/?spm_id_from333.1296.top_right_bar_window_history.content.click&vd_source555…

Redis RDB 持久化問題

前言 Redis 是內存數據庫&#xff0c;它將自己的數據儲存在內存里面&#xff0c;如果不想辦法將儲存在內存中的數據保存到磁盤里面&#xff0c;那么一旦服務器進程退出&#xff0c;服務器中的數據也就沒了。 因此&#xff0c;Redis 提供了 RDB 持久化功能&#xff0c;這個功能…

如何將Windows PC變成Wi-Fi熱點?這里提供詳細步驟

序言 Windows 10和Windows 11都有內置功能,可以將你的筆記本電腦(或臺式機)變成無線熱點,允許其他設備連接到它并共享你的互聯網連接。以下是操作指南。 由于Windows中隱藏的虛擬Wi-Fi適配器功能,你甚至可以在連接到另一個Wi-Fi網絡或無線路由器時創建Wi-Fi熱點,通過另…

魯教版七年級數學上冊-筆記

文章目錄 第一章 三角形1 認識三角形2 圖形的全等3 探索三角形全等的條件4 三角形的尺規作圖5 利用三角形全等測距離 第二章 軸對稱1 軸對稱現象2 探索軸對稱的性質4 利用軸對稱進行設計 第三章 勾股定理1 探索勾股定理2 一定是直角三角形嗎3 勾股定理的應用舉例 第四章 實數1 …

實習生在Linux環境下如何日常使用?

那我簡單來說兩個我使用的場景吧 我在搭建我們的測試環境的時候&#xff0c;先上傳jar包到測試環境對應的目錄下&#xff0c;然后呢此時jar包是不可被執行的&#xff0c;所有就有了 chmod x jar包名稱, 接下來&#xff0c;我是用 jps 查看Java的進程&#xff0c;獲取到pid之后…

Kafka 安裝教程和基本操作

一、簡介 Kafka 是最初由 Linkedin 公司開發&#xff0c;是一個分布式、分區的、多副本的、多訂閱者&#xff0c;基于 zookeeper 協調的分布式日志系統&#xff08;也可以當做 MQ 系統&#xff09;&#xff0c;常見可以用于 web/nginx 日志、訪問日志&#xff0c;消息服務等等…

基于YOLO算法實現網球運動實時分析(附源碼)

大家好&#xff0c;我是小F&#xff5e; 今天給大家介紹一個計算機視覺實戰的項目。 該項目使用YOLO算法檢測球員和網球&#xff0c;并利用cnn提取球場關鍵點。 進而分析視頻中的網球運動員&#xff0c;測量他們的速度、擊球速度和擊球次數。 使用win10電腦&#xff0c;Python …

【源碼】java + uniapp交易所源代碼/帶搭建教程java交易所/完整源代碼

java uniapp交易所源代碼/帶搭建教程java交易所/完整源代碼 帶簡潔教程&#xff0c;未測 java uniapp交易所源代碼/帶搭建教程java交易所/完整源代碼 - 吾愛資源網

【古董技術】ms-dos應用程序的結構

序 制定一個MS-DOS應用程序計劃需要認真分析程序的大小。這種分析可以幫助程序員確定MS-DOS支持的兩種程序風格中哪一種最適合該應用程序。.EXE程序結構為大型程序提供了好處&#xff0c;因為所有.EXE文件之前都有額外的512字節&#xff08;或更多&#xff09;的文件頭。另一方…

C++第十七彈---string使用(下)

?個人主頁&#xff1a; 熬夜學編程的小林 &#x1f497;系列專欄&#xff1a; 【C語言詳解】 【數據結構詳解】【C詳解】 目錄 1、標準庫中的string類 1.1、string類的常用接口說明 1.1.1、string類對象的修改操作 1.1.2、string類對象非成員函數重載 總結 1、標準庫中的…

牛客熱題:有效括號

&#x1f4df;作者主頁&#xff1a;慢熱的陜西人 &#x1f334;專欄鏈接&#xff1a;力扣刷題日記 &#x1f4e3;歡迎各位大佬&#x1f44d;點贊&#x1f525;關注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目錄 牛客熱題&#xff1a;有效括號題目鏈接方法一&#x…

MySQL視圖教程(01):創建視圖

MySQL 創建視圖 在 MySQL 中&#xff0c; CREATE VIEW 語句用于創建一個數據庫視圖&#xff08;View&#xff09;。 MySQL 是一種常用的關系型數據庫管理系統&#xff0c;提供了 CREATE VIEW 語法&#xff0c;用于創建視圖&#xff08;View&#xff09;。視圖是一種虛擬的表&…

Mycat+Mysql搭建數據集群實現數據分片存儲

前言 MyCAT介紹 * 一個徹底開源的,面向企業應用開發的“大數據庫集群”; * 支持事務、ACID、可以替代MySQL的加強版數據庫; * 一個可以視為“MySQL”集群的企業級數據庫,用來替代昂貴的Oracle集群; * 一個融合內存緩存技術、Nosql技術、HDFS大數據的新型SQL; * 一個新穎…

QCC---DFU升級變更設備名和地址

QCC---DFU升級變更設備名和地址 這個很多人碰到這個疑問,升級了改不了設備名和地址 /******************************************************************************* Copyright (c) 2018 Qualcomm Technologies International, Ltd. FILE NAME sink_dfu_ps.c DESCRIPT…

2024.5.1學習記錄

1、代碼隨想錄&#xff1a;貪心刷題 2、react 高級使用( hoc render、props、函數組件、serState 傳送門等) 3、游山玩水

《拯救大學生課設不掛科第四期之藍橋杯是什么?我是否要參加藍橋杯?選擇何種語言?如何科學備賽?方法思維教程》【官方筆記】

背景&#xff1a; 有些同學在大一或者大二可能會被老師建議參加藍橋杯&#xff0c;本視頻和文章主要是以一個過來人的身份來給與大家一些思路。 比如藍橋杯是什么&#xff1f;我是否要參加藍橋杯&#xff1f;參加藍橋杯該選擇何種語言&#xff1f;如何科學備賽&#xff1f;等…

2023年信息素養大賽小學組C++智能算法復賽試題解析

2023年信息素養大賽小學組C++智能算法復賽真題 智能算法挑戰復賽小學組(總共4道題)T1. 判斷數字出現了幾次 【題目描述】 給定一個正整數 n,判斷從 1 到這個數本身的所有數中,一共出現了多少次數字k。 【輸入格式】 輸入共1行,包括一個正整數n和一個正整數k。(0<n<…

JavaEE之線程(7)_單例模式(設計模式概念、單例模式優點、懶漢、餓漢模式)

一、什么是設計模式&#xff1f; 單例模式是設計模式中較為常見的一種。那么&#xff0c;什么是單例模式&#xff1f; 設計模式&#xff08;Design Pattern&#xff09;都是一些相對優秀的解決方案&#xff0c;很多問題都是典型的、有代表性的問題&#xff0c;學習設計模式&am…

C#面:如果出現ASP.NET中的事件不能觸發可能由于什么原因造成

當 ASP.NET 中的事件不能觸發時&#xff0c;可能由以下幾個原因造成&#xff1a; 事件綁定錯誤&#xff1a;請確保事件正確地綁定到相應的控件上。在 ASP.NET 中&#xff0c;可以通過在前端代碼或者后端代碼中使用事件處理程序來綁定事件。如果事件沒有正確地綁定到控件上&…

為什么本科畢業后我堅定地選擇了就業而不是考研?

大家好&#xff0c;我是小布丁。今天來聊聊我為什么本科畢業后選擇了就業而不是考研。 在整個大學期間&#xff0c;我被親戚拷問最多的問題就是&#xff1a;準備考研嗎&#xff1f;相信很多大學生都遇到過這種情況吧。 如果你說準備還好&#xff0c;親戚大概率就不會問下去&a…