1079 延迟的回文数

注意点:如果输入的数是 回文数,那么无需计算,直接输出即可。

这题和 B1019数字黑洞 类似,用string处理 即可!

ps:第一次做时,写了68行,第二次做时,写了38行。。。

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 
 5 bool isPalindromicNumber(const string& str) {//判断是否是回文数
 6     int n = str.size();
 7     for(int i = 0; i < n/2; ++i)
 8         if(str[i] != str[n-1-i]) return false;
 9     return true;
10 }
11 
12 int main() {
13     string str;
14     cin>>str;
15     int i;
16     for(i = 0; i < 10; ++i) {
17         if(isPalindromicNumber(str)) {
18             printf("%s is a palindromic number.",str.c_str());
19             break;
20         }
21         string temp = str;
22         reverse(temp.begin(),temp.end());
23         printf("%s + %s = ",str.c_str(),temp.c_str());
24         string result;
25         int carry = 0;
26         for(int i = str.size()-1; i >= 0; --i) {
27             result += (str[i]-'0'+temp[i]-'0'+carry)%10 +'0';
28             carry = (str[i]-'0'+temp[i]-'0'+carry)/10;
29         }
30         if(carry != 0) result += carry +'0';
31         reverse(result.begin(),result.end());
32         printf("%s\n",result.c_str());
33         str = result;
34     }
35     if(i == 10)
36         printf("Not found in 10 iterations.");
37     return 0;
38 }

 

 

posted @ 2020-02-25 16:09  tangq123  阅读(190)  评论(0编辑  收藏  举报