判斷迴文數的函式--c的實現
- 所謂迴文數,即palindrome ,指從前向後讀或者從後向前讀數的大小不發生改變的數,比如121、34543這些,在這個演算法中,傳入一個long型別的引數m,然後把m的值賦給i,當i非零時執行while語句,while語句內部功能是將一個長整形數i轉化成這個i從右往左重新排列組成的“倒過來的數”,再把這個倒過來的數和原來的m進行比較就實現了判斷是否是迴文數的功能。
- 為了更好的理解while內的程式,先讓我們簡單理解一下:一個數對十取模,得到的數就是它的個位數(比如1886%10=6),一個整形資料除以十得到的數就是它去掉個位數之後組成的比原來少一位數的數(比如1886/10=188)。
- 在這個程式中我們不斷把一個長整形資料的個位數分離出來,並把原長整形數從右向左逐漸減少位數,再經過n=n*10+i%10這句程式,就可以得出一個長整形數的“倒過來的數”,例如1886,進入while之前,i=1886,n=0。第一遍進入while,n=6,i=188;滿足while條件,第二遍:n=68,i=18;第三遍:n=688,i=1;第四遍:n=6881,i=0;跳出while語句,此時發現6881!=1886,判斷得出m不是迴文數,返回值為0,實現了判斷迴文數的功能;
相關推薦
判斷迴文數的函式--c的實現
所謂迴文數,即palindrome ,指從前向後讀或者從後向前讀數的大小不發生改變的數,比如121、34543這些,在這個演算法中,傳入一個long型別的引數m,然後把m的值賦給i,當i非零時執行while語句,while語句內部功能是將一個長整形數i轉化成這個i從右往左重新排列組成的“倒過來的數”,再把這
[leetcode]Valid Palindrome (判斷迴文數 C語言實現)
Valid Palindrome Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. F
網上看到的一個判斷迴文數的函式
int judge(LL n) { ll x,sum=0; x=n; while(n) { sum=sum*10+n%10; n/=10; } if(sum==x) return 1; els
初學C語言(5):逆序輸出片語 ,判斷迴文數
#include #include<assert.h> using namespace std; void reverse(char *pbegin, char *pend ) // 將一句話 片語逆序輸出 { char tmp = 0; while (pbegin < p
c語言:順序棧的應用(二) 判斷迴文數
#include<iostream> #include<stdio.h> #define STACK_INIT_SIZE 100 #define STACK_INCREMENT 10 using namespace std; typedef stru
用C語言判斷迴文數
題目: 程式碼: #include "stdio.h" int main() { int i, n; int a, b, c, d, e, f; printf("請輸入n:"); scanf_s("%d", &n); if (n > 1 &am
資料結構C語言描述———用順序佇列判斷迴文數
所謂迴文數就是正著讀跟倒著讀一樣,比如abcba。用佇列判斷迴文數需要一個棧作為中間量,把一串數字分別進棧和入隊,按照棧先進後出和佇列先進先出的原則,如果棧頂元素跟隊頭元素相等,則棧頂元素出棧同時隊頭元素出隊,接著往下比較,知道必到該串數字的長度的一半,如果之前出棧的元素和
JAVA實現判斷迴文數
從控制檯輸入一個數,如果是迴文數輸出是,不是迴文數輸出否。 package a1; import java.util.Scanner; public class HuiWenShuClass { public static void main
演算法題4:迴文數(python3實現)
判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴
LeetCode(9)判斷迴文數
問題: Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.Coud y
9. Palindrome Number(迴文數)C++
將int轉換為string,注意for迴圈判斷條件的簡化 class Solution { public: bool isPalindrome(int x) { if(x < 0) return false; string s =
將整數變成字串,可用於判斷迴文數
判斷迴文數 C++中如何使函式返回陣列 在C++中,陣列不是一種型別,因此不能被直接返回。一般有兩種方法來返回一個數組。 1.轉換成字串 程式碼塊 void *itoa(int n, char s[]) { int i, j, sign; if ((sign = n)
leetcode——三種方法判斷迴文數
1、第一種方法,利用sprintf函式,將整數格式化到陣列中,以單個元素的形式存放,便於訪問每一個位數。然後在陣列中前後判斷,其實這個方法和入棧出棧的思想有點相似,只是不是用明顯的用棧的操作。 /* 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
JS編寫判斷迴文數
<script type="text/javascript"> function huiWenShu() { var str = document.
leetcode(1)迴文數的js實現
一.題目: 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不
判斷迴文數的三種方法
法一:主要用於判斷數字迴文,不能用於字串迴文。 #include<stdio.h> void fun(long num) { long r=0,temp=num;//記錄判斷數值 while(num)//逆向輸出它的值 { r=r*10+num%10; num=
判斷迴文數、迴文字串(從左邊讀和從右邊讀一樣)
1.判斷一個數是不是迴文數,如:"123321" #include <stdio.h> int main() { int m=1234; //m是要判斷的數 int n=0; //n是反轉
LeetCode 9 判斷迴文數
此題關鍵在於抽取出數字的某一位 用求餘和除操作即可 n為數字位數 x的第i位(高位從0開始) = x%10expn-i/10expn-i-1 與x關於中心對稱的數字是 x%10expi+1/10exp i 有了這點只需要做好健壯性就能輕易過關 PS 全體負數不
【LeetCode 簡單題】3-用Python判斷迴文數
宣告 第3題啦~~~感覺這道題和上一題(第2題)思路差不多,最後再加一句return rev_x == x即可 題目 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 eg1.輸入-輸出:121-True eg2.輸入-輸出
(LeetCode)Palindrome Number -- 判斷迴文數
wechat:812716131 ------------------------------------------------------ 技術交流群請聯絡上面wechat ----------------------------------------------