SDUT--进制转换
题目:点击打开链接
用短除法就可以,但是应该注意当n=0 或 n=1的情况,这种情况直接输出即可。
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int n, r, cnt; int f[200]; while(~scanf("%d%d", &n, &r)) { if(n==0 || n==1) { printf("%d\n", n); continue; } cnt = 0; memset(f, 0, sizeof(f)); if(n<0) { printf("-"); n = -n; } while(n!=0){ int j = n%r; f[cnt++] = j; n = n/r; } for(int i=cnt-1; i>=0; i--) { if(f[i]>=10) printf("%c", 'A'+f[i]-10); else printf("%d", f[i]); } printf("\n"); } return 0; }
每天训练发现我比别人做的好慢,但是理解的更深刻,如果一开始学一个新知识点就搜模板,那么这样的人是走不远的,毕业之后带走的只有思维,什么荣誉,奖杯都已经不重要了。