标签(空格分隔): 九度OJ
原题地址:http://ac.jobdu.com/PRoblem.php?pid=1026
输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。 当m为0时输入结束。
输出格式:每个测试用例的输出占一行,输出A+B的m进制数。
每次都会因为一些细节出错,这个题中,一定要用do while循环保证至少执行一次,否则如果两个数都为0的话,也就会使本次无输出。这也就说明,要针对特例情况充分考虑到,否则因为一个特例会导致全盘皆输。
本题方法简单,算出两数的和,然后把这个数翻转就好了。要记录这个数的位数,再次翻转就很方便了。
#include <stdio.h>int main() { int m; while (scanf("%d", &m) != EOF && m != 0) { long long a, b; scanf("%lld%lld", &a, &b); a = a + b; int arr[100]; int size = 0; do {//如果a=0的话,也要执行一次 arr[size++] = a % m; a /= m; } while (a > 0);//至少执行一次 for (int i = size - 1; i >= 0; i--) { printf("%d", arr[i]); } printf("/n"); } return 0;}2017 年 3 月 5 日
新闻热点
疑难解答