(C語言)迴文數的判斷

來源:互聯網
上載者:User

標籤:c語言迴文數的判斷   將一個數擴充成一個數組   函數的調用   

問題描述:

判斷一個數是否為迴文數;

121;

12321;

1234321;

程式分析:

       1.迴文數(palindromic number):是指一個數的最高位和最低位上的數相等,第二高位與次低位上的數相等,也就是關於中間“對稱”。如上面的三個數情況是一個迴文數。

       2.將這個數擴充成一個數組,將這個數的各個位上的數取出來並且一一賦給這個數組。

       3.判斷這個數組中的元素之間的關係是否符合迴文數的特徵。並且將結果輸出。這個程式寫了一個函數來實現這一功能。


代碼如下:

#include<stdio.h>#defineLENTH 100/* 將要判斷的數值的各個位存放在數組中,為判斷迴文數做準備注意:1234----->>存放在數組中變成---->>4321若是迴文數,數值不變12321----12321 */int Put_in_array(int array[],int num){int i = 0;while(num){array[i] = num % 10;//將當前最低位存放於數組中num /= 10;          //為取出下一位最準備(丟棄已存放的數值位)i++;}return i; //返回數組數值的個數(即數組中元素的個數)}int IS_palindromic_num(int array[],int n){int left = 0;//數組中最左側數值的下標int right = n - 1;//數組中最右側數值的下標while(left <= right){if(array[left] == array[right]){left++;      // 當前位左右對稱相等,指向下一位,為判斷下一位做準備right--;}elsereturn 0 ;//左右不對稱相等,不是迴文數}return 1;//沒有返回1即說明是迴文數}int main(){int num;           //要判斷的數值int array[LENTH];  //存放數值的各個位int n; //數組中元素的個數int i = 1;while(i){printf("please input the num you want to judge:\n");scanf("%d",&num);n = Put_in_array(array,num);if(IS_palindromic_num(array,n) == 1)printf("%d is a palindromic num\n",num);elseprintf("%d it's not a palindromic num\n",num);printf("if you want to continue:    1    if you want to break:   0\n ");scanf("%d",&i);}return 0;}





(C語言)迴文數的判斷

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.