香飘飘网站平台建设,seo品牌推广方法,24免费妇科在线咨询,华联股份股票1074 宇宙无敌加法器 (20 分) 地球人习惯使用十进制数#xff0c;并且默认一个数字的每一位都是十进制的。而在 PAT 星人开挂的世界里#xff0c;每个数字的每一位都是不同进制的#xff0c;这种神奇的数字称为“PAT数”。每个 PAT 星人都必须熟记各位数字的进制表#xff…1074 宇宙无敌加法器 (20 分) 地球人习惯使用十进制数并且默认一个数字的每一位都是十进制的。而在 PAT 星人开挂的世界里每个数字的每一位都是不同进制的这种神奇的数字称为“PAT数”。每个 PAT 星人都必须熟记各位数字的进制表例如“……0527”就表示最低位是 7 进制数、第 2 位是 2 进制数、第 3 位是 5 进制数、第 4 位是 10 进制数等等。每一位的进制 d 或者是 0表示十进制、或者是 [29] 区间内的整数。理论上这个进制表应该包含无穷多位数字但从实际应用出发PAT 星人通常只需要记住前 20 位就够用了以后各位默认为 10 进制。 在这样的数字系统中即使是简单的加法运算也变得不简单。例如对应进制表“0527”该如何计算“6203 415”呢我们得首先计算最低位3 5 8因为最低位是 7 进制的所以我们得到 1 和 1 个进位。第 2 位是0 1 1进位 2因为此位是 2 进制的所以我们得到 0 和 1 个进位。第 3 位是2 4 1进位 7因为此位是 5 进制的所以我们得到 2 和 1 个进位。第 4 位是6 1进位 7因为此位是 10 进制的所以我们就得到 7。最后我们得到6203 415 7201。 输入格式
输入首先在第一行给出一个 N 位的进制表0 N ≤ 20以回车结束。 随后两行每行给出一个不超过 N 位的非负的 PAT 数。 输出格式
在一行中输出两个 PAT 数之和。 输入样例
30527 06203 415 输出样例
7201
#includeiostream
#includestring
#includevector
#includealgorithm
using namespace std;
int main()
{string str, str1, str2;cin str str1 str2;reverse(str.begin(), str.end());reverse(str1.begin(), str1.end());reverse(str2.begin(), str2.end());vectorintstr3;if (str2.size() str1.size())swap(str1, str2);str2.append(str1.size() - str2.size(), 0);//cout str2 str1;if (str1 str2){cout 0;return 0;}int ans 0;for (int i 0; i str1.size(); i){int a str1[i] - 0;int b str2[i] - 0;int c str[i] - 0;if (c 0){c 10;}if (a b ans c){str3.insert(str3.begin(), 1, ((a b ans) - c));ans 1;}else{str3.insert(str3.begin(), 1, a b ans);ans 0;}}int flag 0;if (ans 1)str3.insert(str3.begin(), 1, 1);for (int i 0; i str3.size(); i){if (str3[i] ! 0)flag 1;if (flag 1)cout str3[i];}
}