hpuoj--1093: 回文数(一)
?
1093: 回文數(shù)(一)
時(shí)間限制: 1 Sec??內(nèi)存限制: 128 MB提交: 3??解決: 3
[提交][狀態(tài)][討論版]
題目描述
若一個(gè)數(shù)(首位不為0)從左到右讀與從右到左讀都是一樣,這個(gè)數(shù)就叫做回文數(shù),例如12521就是一個(gè)回文數(shù)。
給定一個(gè)正整數(shù),把它的每一個(gè)位上的數(shù)字倒過來排列組成一個(gè)新數(shù),然后與原數(shù)相加,如果是回文數(shù)則停止,如果不是,則重復(fù)這個(gè)操作,直到和為回文數(shù)為止。給定的數(shù)本身不為回文數(shù)。
例如:87則有:
STEP1: 87+78=165
STEP2: 165+561=726
STEP3: 726+627=1353
STEP4: 1353+3531=4884
編寫一個(gè)程序,輸入M(12<=M<=100),輸出最少經(jīng)過幾步可以得到回文數(shù)。如果在8步以內(nèi)(含8步)不可能得到回文數(shù),則輸出0。
輸入
第1行一個(gè)正整數(shù)L,代表測(cè)試數(shù)據(jù)的組數(shù)。
接下來L行每行一個(gè)整數(shù)M(12<=M<=100),M本身不為回文數(shù);
輸出
輸出L行,第i行對(duì)應(yīng)輸入數(shù)據(jù)的第i+1行,輸出最少需要的步數(shù);如果步數(shù)大于8,則輸出0。
樣例輸入
3 12 87 89樣例輸出
1 4 0提示
來源
吉首大學(xué)軟件學(xué)院
略坑: -- > 咱理工大自己的OJ。 Nm.
#include <cstdio> #include <cstring> #include <iostream> using namespace std; int a[10], num, total; int main() {int t; int n;scanf("%d", &t);while(t--){scanf("%d", &n); int total = 1;s1: int k = 0; int Ac = n;while(Ac){a[k++] = Ac % 10; Ac /= 10;}int num = 0;for(int i = 0; i < k; i++)num = num*10 + a[i];if(num == n){printf("%d\n", total- 1);continue;}else{n = num + n;++total;if(total > 8){printf("0\n");continue;} goto s1; }}return 0; }?
轉(zhuǎn)載于:https://www.cnblogs.com/soTired/p/4759446.html
總結(jié)
以上是生活随笔為你收集整理的hpuoj--1093: 回文数(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SharePoint自动化系列——Sol
- 下一篇: VS2015 添加DNX SDK