正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。
现给定A、DA、B、DB,请编写程序计算PA + PB。
输入格式:
输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。
输出格式:
在一行中输出PA + PB的值。
输入样例1:3862767 6 13530293 3输出样例1:
399输入样例2:
3862767 1 13530293 8输出样例2:
0 //有冗余的代码,谢谢指出,博主只是个菜鸟#include <iostream> #include <algorithm> #include <string> #include <deque> using namespace std; deque<char> dea, deb, en; void print(char c) { cout<<c; } void Add() { int jinwei = 0; char zhi; int i; for(i = 0; i < dea.size() && i < deb.size(); ++i) { if((zhi = (dea[i]-'0' + deb[i] + jinwei)) > '9') { en.push_back(zhi-10); jinwei = 1; } else { en.push_back(zhi); jinwei = 0; } } int j; for(j = i; j < dea.size(); ++j) { if((zhi = (dea[i] + jinwei)) > '9') { en.push_back(zhi-10); jinwei = 1; } else { en.push_back(zhi); jinwei = 0; } } for(j = i; j < deb.size(); ++j) { if((zhi = (deb[i] + jinwei)) > '9') { en.push_back(zhi-10); jinwei = 1; } else { en.push_back(zhi); jinwei = 0; } } if(jinwei == 1) en.push_back('1'); } int main() { string A, B; int pa, pb; cin>>A>>pa>>B>>pb; int i; for(i = 0; i < A.length(); ++i) { if((A[i] == pa + '0') && pa != 0) dea.push_back(A[i]); } for(i = 0; i < B.length(); ++i) { if((B[i] == pb + '0') && pb != 0) deb.push_back(B[i]); } if(dea.size() && deb.size()) { Add(); for_each(en.rbegin(), en.rend(), print); } else { if(dea.size()) for_each(dea.rbegin(), dea.rend(), print); else if(deb.size()) for_each(deb.rbegin(), deb.rend(), print); else cout<<"0"; } cout<<endl; return 0; }