您的位置:首页 > 其它

sdnu oj 1041 任意进制转换

2017-11-13 22:07 155 查看




1041.任意进制转换

Time Limit: 1000 MS    Memory Limit: 32768 KB

Total Submission(s): 454    Accepted Submission(s): 232


Description

给你一个十进制数字n,请你将其转换为m进制。


Input

十进制数字n(1 <= n <= 10000000),进制m(2 <= m <= 10)


Output

用m进制表示的数字n


Sample Input

10 2



Sample Output

1010



Hint

c = a % b 意为 c为a除b的余数


Source

SDNU ACM-ICPC 2012 Training


这道题就是用反复除进制数,并且用字符串倒序输出的方法来转换进制的,代码需要注意的地方也在备注上。(同时大力感谢又壬师哥知识方面的鼎力相助)


Source Code View

Run ID: 57827  /  Problem ID: 1041  / 
Author: 2017Liushilei  /  Language: C++

Submit Time: 201
4000
7-11-13 21:53:21  /  Judge Status: Accepted  / 
Judge Time: 2017-11-13 21:53:23



1

#include "stdio.h"


2

int main()


3

{


4



5

int n,m;


6

int i=0,j;


7

char str[100]={0};


8

scanf("%d %d",&n,&m);


9

while(n)//n不为0即可执行循环


10

{


11

str[i]=n%m+'0';//取每次除法的余数,+'0'这样可以将一个整形的值转换成字符型赋给str[i]。和str[i] = (char)n%10的作用是一样的


12

n=n/m;//留下整除的结果继续除


13

i++;


14

}


15

for(j=0;j<i;j++)


16

printf("%c",str[i-1-j]);//倒序输出字符串,j从0开始,i总比j大1,所以用i-1.(输出每一个字符,用%c)


17

printf("\n");


18

return 0;


19

}


20



© 2012-2015 SDNU ACM-ICPC TEAM, v1.2 Beta
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  进制转换