標簽(空格分隔): 九度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 日
新聞熱點
疑難解答