1474 十进制转m进制——http://codevs.cn/problem/1474/
第一部分:题目
题目描述 Description
将十进制数n转换成m进制数 m<=16
n<=100
输入描述 Input Description
共一行
n和m
输出描述 Output Description
共一个数
表示n的m进制
样例输入 Sample Input
样例1:10 2
样例2:100 15
样例输出 Sample Output
样例1:1010
样例2:6A
第二部分:思路
十进制转换成其他进制:反向取余法。
反向取余法定义:
例如把n转换成m进制:
1,用n/m,得余数r,存入数组,执行步骤2;
2,如果n/m等于0的话,数组中的数反向输出就是n的m进制,(需要注意的是当进制为11~16的时候,10~15对应于:A,B,C,D,E,F.)
如果n/m不等于0,继续执行步骤1.
第三部分:代码
#include<stdio.h> int main() { int n,m,i,s[10],len=0; scanf("%d %d",&n,&m); while(n) { s[len++]=n%m; n/=m; } for(i=len-1;i>=0;i--) { switch(s[i]) { case 15: { printf("F"); break; } case 14: { printf("E"); break; } case 13: { printf("D"); break; } case 12: { printf("C"); break; } case 11: { printf("B"); break; } case 10: { printf("A"); break; } default: { printf("%d",s[i]); break; } } } printf("\n"); return 0; }
害怕失败的人,已经是一个loser!