C語言經典演算法100例-030-判斷一個數是否為迴文數
所謂迴文數,即是正序與逆序相等的一個數,如121,12321,10501等。寫程式判斷輸入的數是否為迴文數。
1.分析:表面上看,我們似乎要這麼做,把各個位分離,然後把第一個數跟最後一個數比較,第二個跟倒數第二個....等等。注意,這樣做太複雜了,迴文數的條件是正序等於逆序,那麼我們為什麼不把逆序的值求出來與正序值比較呢,我們已經很擅長做逆序的工作,所以我們有了這樣的程式:
#include <stdio.h> #include <stdlib.h> //判斷一個數是否為迴文數 int main() { long int i; int pld(long int); printf("Input a number!\n"); scanf("%ld",&i); if(pld(i)) printf("It's a palindrome.\n"); else printf("It's not a palindrome.\n"); return 0; } int pld(long int m) //求m的逆序值並與m比較 { long int temp=m; long int n=0; while(temp) //逆序分離各位 { n=n*10+temp%10; //求逆序值 temp/=10; } return (m==n); }
相關推薦
C語言經典演算法100例-030-判斷一個數是否為迴文數
所謂迴文數,即是正序與逆序相等的一個數,如121,12321,10501等。寫程式判斷輸入的數是否為迴文數。 1.分析:表面上看,我們似乎要這麼做,把各個位分離,然後把第一個數跟最後一個數比較,第二個跟倒數第二個....等等。注意,這樣做太複雜了,迴文數的條件是正序等於逆序
用Python判斷一個數是否為迴文數(或者回文字串)
所謂迴文數。就是正著讀和反著讀,都是一樣的。 例如: 數字:121、1331、22、都是迴文數。 1234 不是迴文數。 自然數中最小的迴文數是0,再就是1,2,3,4,5,6,7,8,9,
C語言經典演算法100例-009-輸出國際象棋棋盤
題目如下: 輸出國際象棋棋盤:8*8黑白格相間。 1.分析:雙重迴圈,按條件選擇輸出黑或者白。但這個條件怎麼確定呢,可以看到,奇數列中所有奇數行為白色,偶數列中所有偶數行為白色,然而我們在程式中並不會根據每行的奇偶再去判斷列的奇偶,而巧妙的將條件轉化為:當行數與列數的和為偶
C語言經典演算法100例-069-簡單約瑟夫環問題
這裡我們實現一個簡單的約瑟夫環問題,描述如下: 有N個人站成一圈,從第一個人開始報數,從1報到3,報到3的那個人走出圈,然後從下一個人開始從1繼續報數,重複上面的過程,直到最後圈裡只剩下一個人,問這個人是哪個人? 分析:首先,我們要給這N個人編號,分別編為1到N, 然後,開
從控制檯輸入一個數,判斷這個數是否為迴文數
分析:要判斷一個數是否是迴文數,首先要知道什麼是迴文數。 1.迴文數必須是五位數。 2.滿足條件:萬位數=各位數;千位數=十位數; 3.獲取各個位數的方法 int ww=a/10000;//萬位 //int qw=a/1000%10;//千位 //int bw=a/100%
Mr.J--C語言經典程式設計100例
C語言,一般為初學者的首選語言,說簡單也簡單,但是要真正學好C語言,也是一件很難的事,懂了這些100個例題,也就算是入門了吧,畢竟語言要學的太多,這只是基礎。 【程式1】 題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長
C語言經典程式100例
【程式1】 題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月 後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? 1.程式分析: 兔子的規律為數列1,1,2,3,5,8,13,21.... 2.程式原始碼: #
c語言:實現一個函式,判斷一個數是不是素數。
實現一個函式,判斷一個數是不是素數。程式:#include<stdio.h>#include<math.h>int prime(intnum) //prime表示素數{int i
編寫一個函式判斷一個整數是否為迴文數。如果一個屬從正的方向讀和從反的方向讀的結果相同,則該數就是迴文數。
bool palindrome(int b){ int k = 0; char a[1000]; do { int c; c = b % 10; char d; for (int i = 0; i <= 9; i++) { if (c == i
怎麼判斷一個數是否為完全平方數
在不使用浮點函式sqrt的情況下,我們有一些比較好的演算法: 1.利用恆等式: 1+3+5+7+....+(2*n-1)=n^2 bool isSqrt(int n) { for(int i=1;n>0;i+=2) n-=i; return 0 == n;
2. 編寫一個Java應用程式,使用者從鍵盤輸入一個1~9999之間的數,程式將判斷這個數是幾位數,並判斷這個數是否是迴文數。迴文數是指將該數含有的數字逆序排列後得到的數和原數相同,例如12121、32
import javax.swing.JOptionPane; public class TestNumber { public static void main(String args[]) { loopNumber
判斷一個整數是否為迴文數
問題 判定一個正整數是否是一個迴文數。例如12121是迴文數,而1231不是迴文數。迴文數定義為可以以中間某個數字對稱,或者間隔對稱,例如123321,或者1234321。詳細的迴文數介紹請參考維基百科:http://en.wikipedia.org/wiki/Palin
C語言經典演算法 輸入某年某月某日 判斷這一天是這一年的第幾天
題目:輸入某年某月某日,判斷這一天是這一年的第幾天?1.程式分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊 情況,閏年且輸入月份大於3時需考慮多加一天。2.程式原始碼:main(){int day,month,year,sum,le
C語言經典演算法:求1-100之間素數
#include<stdio.h> #include<stdlib.h> #include<assert.h> #include<math.h> in
C語言經典演算法:輸入某年某月某日,判斷這一天是這一年的第幾天?
題目:輸入某年某月某日,判斷這一天是這一年的第幾天?1.程式分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊 情況,閏年且輸入月份大於3時需考慮多加一天。2.程式原始碼:main(){int day,month,year,sum,l
C語言經典演算法(九)——遞迴實現二分查詢的兩種方法
後繼續整理演算法並寫出自己的理解和備註。 C++實現的:遞迴實現二分查詢演算法 1、 遞迴實現二分查詢 <1> 題目描述:針對資料,進行二分查詢(要求:資料的排列有序) <2> 方法一:概念法 <3> 方法二:遞迴法 原始碼: 一、 遞迴實現
C語言經典演算法(八)——遞迴實現斐波那契數列的兩種方法
後繼續整理演算法並寫出自己的理解和備註。 C++實現的:遞迴實現斐波那契數列 1、 遞迴實現斐波那契數列Fib(n) <1> 題目描述:輸入n值,求解第n項的斐波那契數列值 <2> 方法一:概念法 <3> 方法二:遞迴法 斐波那契數列值是值1
C語言經典演算法(七)——遞迴實現階乘演算法的兩種方法
今後繼續整理演算法並寫出自己的理解和備註。 C++實現的:遞迴實現階乘演算法N! 1、 遞迴實現n! <1> 題目描述:輸入n值,求解n的階乘 <2> 方法一:累乘法 <3> 方法二:遞迴法 原始碼: 一、 遞迴實現n! 1、 累乘法 #
C語言經典演算法練習一(氣泡排序)
本次練習總結: 1. 函式宣告在初次編碼時忘記,教訓一; 2. 不知道不知長度的陣列空間該如何操作,學會了動態分配,知道了malloc函式在<stdlib.h>標頭檔案中,收穫一; 3. 又忘記double型別在printf()和是scanf()中用%
C語言經典演算法題目——列印水仙花數
“水仙花”數指的是一個3位數,它的每個位數字的三次冪之和等於它本身 舉一個例子: 153=1x1x1+5x5x5+3x3x3 我們先來看看執行的結果 下面是程式實現的程式碼 #include<stdio.h> int main() {