給出一個十進制數(不跨越20位),將整數與它的倒序數相加,若是獲得一個回文數,輸出步數,若是不是回文數,則繼續相加,若是在30步以內(包羅30步)得不到回文數,則輸出整數不克不及獲得回文數。
若何用C++實現這一算法呢?小編與大師分享編程經驗。
將十進制數87轉換為回文數,可以與它的倒序數相加,直到轉換為回文數,共需4個步調。
起首,界說一個常量SIZE,節制數組的長度。
界說整型變量,實現法式的運算。
接著,界說一個變量,保留用于計較的整數列位的值。
界說一個布爾型變量,節制輪回的退出。
輸入進制,保留在變量n中。
用do-while輪回,輸入需要轉換為回文的整數,保留在數組c[i]中。
用while語句節制計較回文數,前提是flag的值為真。
用兩個for輪回語句,將輸入的數轉換為十進制數。
將兩個十進制數相加,成果保留在變量sum中。
將相加獲得的整數,轉換為輸入要求的進制。
用count實現轉換步調的統計,如下圖所示。
判定計較出的數是否為回文數,用while語句實現判定。
若是可以轉換為回文數,輸出轉換當作功所需的步調。
最后,若是轉換的次數年夜于30次,則輸出該數不克不及轉換為回文數。
運行法式,輸入進制和整數后,電腦就管帳算出轉換為回文數的步調數,若是不克不及轉換,則輸出無法轉換為回文數。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!