PAT 乙級 外星人的語言 1017
阿新 • • 發佈:2019-02-15
________________________________________________題目描述
nowcoder費了很大勁,終於和地外文明聯絡上。我們地球人通常有10根手指,因此我們習慣用10進位制的數,而外星人的手指有16跟、8根等不等的數目,因此他們使用與我們不同的進位制。為了方便溝通,需要你開發一款工具,把地球人的10進位制轉換成外星人的R進位制形式。
輸入描述:
輸入有多行。
每行包括兩個正整數n和R,其中2≤R≤16。
輸入直到檔案結束為止。
輸出描述:
對於每個用例,輸出n對應的R進位制形式。
超過10進位制的數,10用A表示、11用B表示,依次類推。
輸入例子:
1989 2
1119 16
輸出例子:
11111000101
45F
——————————————————————————程式碼如下
#include"stdio.h" int main() { int n, r; int num[100]; char tempt[100]; while (scanf("%d%d", &n, &r) != EOF) { int i; for (i = 0; n != 0; i++) { if (n%r < 10) { num[i] = n%r; tempt[i] = 0; } else tempt[i] = 'A' + (n%r - 10); n /= r; } if (n%r < 10) { num[i] = n%r; tempt[i] = 0; } else { tempt[i] = 'A' + (n%r - 10); } i = i - 1; for (i; i >= 0; i--) { if (tempt[i] == 0) printf("%d",num[i]) ; else printf("%c",tempt[i]); } printf("\n"); } } /*此處也可以新建一個字元型陣列,比如num0[100],然後用num[j]='\0';結尾, 只使用一個printf("%s",num0);即可輸出結果。*/
————————————————小總結
#1
數字型別的陣列與字元陣列的輸入、輸出需要注意