sdnu oj 1041 任意进制转换

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


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

Source Code View

Run ID: 57827  /  Problem ID: 1041  /  Author: 2017Liushilei  /  Language: C++
Submit Time: 2017-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




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值