2006年浙大复试上机题火星A+B
2013-03-17 22:27
155 查看
#include <stdio.h> #include <string.h> char str1[100], str2[100]; int dst1[100], dst2[100]; int prim[]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113}; int max(int a, int b) { if(a >= b) return a; else return b; } int main () { int i; while(scanf("%s %s", str1, str2) != EOF) { if(str1[0] == '0' && str1[1] == '\0' || str2[0] == '0' && str2[1] == '\0') break; int len1 = strlen(str1); int len2 = strlen(str2); i = len1 - 1; len1 = 0; for(; i >= 0; i --) { int t = 1, sum = 0; while(str1[i] != ',' && i >= 0) { sum += (str1[i] - '0') * t; t *= 10; i --; } dst1[len1 ++] = sum; } int sum = 0; for(i = 0; i < len1; i ++) { sum += dst1[i]; } if(sum == 0) break; i = len2 - 1; len2 = 0; for(; i >= 0; i --) { int t = 1, sum = 0; while(str2[i] != ',' && i >= 0) { sum += (str2[i] - '0') * t; t *= 10; i --; } dst2[len2 ++] = sum; } sum = 0; for(i = 0; i < len2; i ++) { sum += dst2[i]; } if(sum == 0) break; if(len1 > len2) { for(i = len2; i < len1; i ++) dst2[i] = 0; } else if(len2 > len1) { for(i = len1; i < len2; i ++) dst1[i] = 0; } len1 = max(len1, len2); int count = 0; for(i = 0; i < len1; i ++) { dst1[i] += dst2[i] + count; if(dst1[i] >= prim[i]) { dst1[i] -= prim[i]; count = 1; } else { count = 0; } } if(count == 1) { dst1[len1 ++] = 1; } for(i = len1 - 1; i >= 0; i --) { if(i != 0) printf("%d,", dst1[i]); else printf("%d\n", dst1[i]); } } return 0; }
相关文章推荐
- 2006年浙大研究生复试机试真题-火星A+B
- 2007浙大复试上机考试题目6--最大报销额
- 十三、通过浙大上机复试试题学SPFA 算法
- 2005浙大上机复试解题报告
- ZJU-PAT 1057. Stack (30)---17有3组超时 浙大2013年上机复试第三题
- 2006浙大上机复试解题报告
- 2007浙大上机复试解题报告
- 清华2006年复试上机题:二叉树遍历
- ZJU-PAT 1079. Total Sales of Supply Chain (25) 浙大2014年上机复试第三题
- 2008浙大上机复试解题报告
- 2007浙大复试上机考试题目1--最小长方形
- 2009浙大上机复试解题报告
- 十三、通过浙大上机复试试题学SPFA 算法
- 浙大PAT考试1077~1080(2014上机复试题目)
- 2007浙大复试上机考试题目2--统计字符
- 2010浙大上机复试解题报告
- 十三、通过浙大上机复试试题学SPFA 算法
- 并查集的应用(05年浙大复试上机题畅通工程)
- 浙大研究生复试上机考试2005——畅通工程
- hdu 3792 Twin Prime Conjecture 浙大复试上机题 水题