1079 延遲的回文數 (20 分)

給定一個?k+1?位的正整數?N,寫成?a?k???a?1??a?0???的形式,其中對所有?i?有?0a?i??<10?且?a?k??>0。N?被稱為一個回文數,當且僅當對所有?i?有?a?i??=a?k?i??。零也被定義為一個回文數。

非回文數也可以通過一系列操作變出回文數。首先將該數字逆轉,再將逆轉數與該數相加,如果和還不是一個回文數,就重復這個逆轉再相加的操作,直到一個回文數出現。如果一個非回文數可以變出回文數,就稱這個數為延遲的回文數。(定義翻譯自?https://en.wikipedia.org/wiki/Palindromic_number?)

給定任意一個正整數,本題要求你找到其變出的那個回文數。

輸入格式:

輸入在一行中給出一個不超過1000位的正整數。

輸出格式:

對給定的整數,一行一行輸出其變出回文數的過程。每行格式如下

A + B = C

其中?A?是原始的數字,B?是?A?的逆轉數,C?是它們的和。A?從輸入的整數開始。重復操作直到?C?在 10 步以內變成回文數,這時在一行中輸出?C is a palindromic number.;或者如果 10 步都沒能得到回文數,最后就在一行中輸出?Not found in 10 iterations.

輸入樣例 1:

97152

輸出樣例 1:

97152 + 25179 = 122331
122331 + 133221 = 255552
255552 is a palindromic number.

輸入樣例 2:

196

輸出樣例 2:

196 + 691 = 887
887 + 788 = 1675
1675 + 5761 = 7436
7436 + 6347 = 13783
13783 + 38731 = 52514
52514 + 41525 = 94039
94039 + 93049 = 187088
187088 + 880781 = 1067869
1067869 + 9687601 = 10755470
10755470 + 07455701 = 18211171
Not found in 10 iterations.
//c
#include<iostream>
#include<cstring>
using namespace std;
const int maxn = 1100;
char a[maxn] = {0},b[maxn] = {0};bool isPalindromic(char a[]){int len = strlen(a);for(int i = 0; i < len/2; i++){if(a[i] != a[len - i- 1]) return false;}return true;
}void reverse(char a[],char b[]){  //reverse a to bint len = strlen(a);for(int i = 0; i < len; i++){b[len - i - 1] = a[i];}//b[len] = '\0';
}void addToA(char a[],char b[]){int len = strlen(a);int carry = 0;for(int i = 0; i < len; i++){int temp = (a[i] - '0') + (b[i] - '0')+ carry;b[i] = temp % 10 + '0';carry = temp / 10; }if(carry != 0) b[len] = carry + '0';reverse(b,a);//carry[len] = '\0';
}int main(){    //fgets(a,maxn,stdin);
    cin.getline(a,maxn);int cnt = 0;while(isPalindromic(a) == false && cnt < 10){reverse(a,b);printf("%s + %s = ",a,b);addToA(a,b);printf("%s\n",a);cnt++;}if(isPalindromic(a)){printf("%s is a palindromic number.",a);}else{printf("Not found in 10 iterations.");}return 0;
}
//C++
#include<iostream>
#include<algorithm>
using namespace std;bool isPalindromic(const string &C){int len = C.size();for(int i = 0; i < len/2; i++){if(C[i] != C[len - i - 1]) return false;}return true;
}string add(const string &A,const string &B){string C;int len = A.size();int carry = 0;for(int i = len - 1; i >= 0; i--){int temp = A[i] - '0' + B[i] - '0' + carry;C += temp % 10 + '0';carry = temp / 10;}if(carry) C += '0' + carry;reverse(C.begin(),C.end());return C;
}int main(){string A,B,C;cin >> A;int cnt = 10;if(isPalindromic(A)){cout << A << " is a palindromic number.";return 0;}while(cnt--){B = A;reverse(B.begin(),B.end());C = add(A,B);cout << A << " + " << B << " = " << C << endl;if(isPalindromic(C)) {cout << C << " is a palindromic number.";return 0;}A = C;   }cout << "Not found in 10 iterations." << endl;return 0;
}

?

轉載于:https://www.cnblogs.com/wanghao-boke/p/10424605.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/385153.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385153.shtml
英文地址,請注明出處:http://en.pswp.cn/news/385153.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1081 檢查密碼 (15 分)

本題要求你幫助某網站的用戶注冊模塊寫一個密碼合法性檢查的小功能。該網站要求用戶設置的密碼必須由不少于6個字符組成&#xff0c;并且只能有英文字母、數字和小數點 .&#xff0c;還必須既有字母也有數字。 輸入格式&#xff1a; 輸入第一行給出一個正整數 N&#xff08;≤ …

1082 射擊比賽 (20 分)

本題目給出的射擊比賽的規則非常簡單&#xff0c;誰打的彈洞距離靶心最近&#xff0c;誰就是冠軍&#xff1b;誰差得最遠&#xff0c;誰就是菜鳥。本題給出一系列彈洞的平面坐標(x,y)&#xff0c;請你編寫程序找出冠軍和菜鳥。我們假設靶心在原點(0,0)。 輸入格式&#xff1a; …

LRU緩存機制

運用你所掌握的數據結構&#xff0c;設計和實現一個 LRU (最近最少使用) 緩存機制。它應該支持以下操作&#xff1a; 獲取數據 get 和 寫入數據 put 。 獲取數據 get(key) - 如果密鑰 (key) 存在于緩存中&#xff0c;則獲取密鑰的值&#xff08;總是正數&#xff09;&#xff…

1083 是否存在相等的差 (20 分)

給定 N 張卡片&#xff0c;正面分別寫上 1、2、……、N&#xff0c;然后全部翻面&#xff0c;洗牌&#xff0c;在背面分別寫上 1、2、……、N。將每張牌的正反兩面數字相減&#xff08;大減小&#xff09;&#xff0c;得到 N 個非負差值&#xff0c;其中是否存在相等的差&#…

c++如何防止一個類被其他類繼承?

如何在防止一個類被其他的類繼承呢&#xff1f; 如果是僅僅為了達到這個目的可以直接把這個類的構造函數設置成私有的&#xff0c;這樣就杜絕了其他類的繼承。也相當于毀掉了這個類&#xff08;無法再創造出自己的對象&#xff09;。 那么怎么樣既要保證這個類的完整性&#…

1084 外觀數列 (20 分)

外觀數列是指具有以下特點的整數序列&#xff1a; d, d1, d111, d113, d11231, d112213111, ...它從不等于 1 的數字 d 開始&#xff0c;序列的第 n1 項是對第 n 項的描述。比如第 2 項表示第 1 項有 1 個 d&#xff0c;所以就是 d1&#xff1b;第 2 項是 1 個 d&#xff08;對…

C++中構造函數和析構函數可以拋出異常嗎?

不建議在構造函數中拋出異常。當構造函數中拋出異常時&#xff0c;析構函數將不會被執行&#xff0c;需要手動釋放內存。析構函數不應該拋出異常。當析構函數中有一些可能發生的異常時&#xff0c;這時候要把可能發生的異常完全封裝在析構函數內部&#xff0c;決不能讓它拋出到…

1085 PAT單位排行 (25 分

每次 PAT 考試結束后&#xff0c;考試中心都會發布一個考生單位排行榜。本題就請你實現這個功能。 輸入格式&#xff1a; 輸入第一行給出一個正整數 N&#xff08;≤&#xff09;&#xff0c;即考生人數。隨后 N 行&#xff0c;每行按下列格式給出一個考生的信息&#xff1a; 準…

23. 合并K個排序鏈表

合并 k 個排序鏈表&#xff0c;返回合并后的排序鏈表。請分析和描述算法的復雜度。 示例: 輸入: [ 1->4->5, 1->3->4, 2->6 ] 輸出: 1->1->2->3->4->4->5->6 解法&#xff1a; class Solution { public:ListNode* mergeKLists(vect…

1086 就不告訴你 (15 分)

做作業的時候&#xff0c;鄰座的小盆友問你&#xff1a;“五乘以七等于多少&#xff1f;”你應該不失禮貌地圍笑著告訴他&#xff1a;“五十三。”本題就要求你&#xff0c;對任何一對給定的正整數&#xff0c;倒著輸出它們的乘積。 輸入格式&#xff1a; 輸入在第一行給出兩個…

學習鏈接

序號鏈接1Forz Blog [點擊鏈接]2arkingc/note [點擊鏈接] linw7/Skill-Tree [點擊鏈接] chenshuaihao/NetServer [點擊鏈接]

1087 有多少不同的值 (20 分)

當自然數 n 依次取 1、2、3、……、N 時&#xff0c;算式 ? 有多少個不同的值&#xff1f;&#xff08;注&#xff1a;? 為取整函數&#xff0c;表示不超過 x 的最大自然數&#xff0c;即 x 的整數部分。&#xff09; 輸入格式&#xff1a; 輸入給出一個正整數 N&#xff08;…

1088 三人行 (20 分)

子曰&#xff1a;“三人行&#xff0c;必有我師焉。擇其善者而從之&#xff0c;其不善者而改之。” 本題給定甲、乙、丙三個人的能力值關系為&#xff1a;甲的能力值確定是 2 位正整數&#xff1b;把甲的能力值的 2 個數字調換位置就是乙的能力值&#xff1b;甲乙兩人能力差是丙…

1089 狼人殺-簡單版 (20 分)

以下文字摘自《靈機一動好玩的數學》&#xff1a;“狼人殺”游戲分為狼人、好人兩大陣營。在一局“狼人殺”游戲中&#xff0c;1 號玩家說&#xff1a;“2 號是狼人”&#xff0c;2 號玩家說&#xff1a;“3 號是好人”&#xff0c;3 號玩家說&#xff1a;“4 號是狼人”&#…

1090 危險品裝箱 (25 分)

集裝箱運輸貨物時&#xff0c;我們必須特別小心&#xff0c;不能把不相容的貨物裝在一只箱子里。比如氧化劑絕對不能跟易燃液體同箱&#xff0c;否則很容易造成爆炸。 本題給定一張不相容物品的清單&#xff0c;需要你檢查每一張集裝箱貨品清單&#xff0c;判斷它們是否能裝在同…

C++標準庫之String

C中支持的字符串處理的函數庫叫String&#xff0c;但它不是STL&#xff0c;卻與STL操作十分相似。 1.聲明&#xff1a; 使用String之前要有以下頭文件 #include<string> using namespace std; 聲明方法 string s; //聲明一個string對象 s string s[10]; //聲明一個stri…

652. 尋找重復的子樹

給定一棵二叉樹&#xff0c;返回所有重復的子樹。對于同一類的重復子樹&#xff0c;你只需要返回其中任意一棵的根結點即可。 兩棵樹重復是指它們具有相同的結構以及相同的結點值。 示例 1&#xff1a; 1 / \ 2 3 / / \ 4 2 4 / 4 …

817. 鏈表組件

給定一個鏈表&#xff08;鏈表結點包含一個整型值&#xff09;的頭結點 head。 同時給定列表 G&#xff0c;該列表是上述鏈表中整型值的一個子集。 返回列表 G 中組件的個數&#xff0c;這里對組件的定義為&#xff1a;鏈表中一段最長連續結點的值&#xff08;該值必須在列表 G…

1121 Damn Single (25 分)

"Damn Single (單身狗)" is the Chinese nickname for someone who is being single. You are supposed to find those who are alone in a big party, so they can be taken care of. Input Specification: Each input file contains one test case. For each case,…