zoukankan      html  css  js  c++  java
  • 洛谷 P1017 进制转换

    洛谷 P1017 进制转换

    题意

    给你一个数,让你用负进制来进行表示。输入是两个数,一个是要表示的数,另一个是进制数。

    解题思路

    看的题解,这个有点蒙。

    首先答题思路就是用r来进行模运算,但是模的过程中可能出现负数,这个就不好了,我们需要从上一位来进行借1。

    这里把余数从负数转换为整数的方法是本身减去进制数(注意,这个进制数是负数,其实就是加上绝对值),然后商需要加1。

    代码实现

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    void solve(int n, int r)
    {
    	if(n==0) return ;
    	int m=n%r;
    	if(m<0)
    	{
    		m-=r;
    		n+=r;
    	}
    	if(m>=10) m='A'+m-10;
    	else m+='0';
    	solve(n/r, r);
    	printf("%c", m);
    	return ;
    }
    
    int main()
    {
    	int n, r;
    	scanf("%d%d", &n, &r);
    	printf("%d=", n);
    	solve(n, r);
    	printf("(base%d)", r);
    	return 0;
    }
    
    欢迎评论交流!
  • 相关阅读:
    [状压DP][二分]JZOJ 3521 道路覆盖
    字符串操作
    练习: 判断一个数是否为小数
    Python 深浅拷贝
    编码
    python中的 == 和 is 的区别
    Python3 字典的增删改查
    Python3 列表的基本操作
    初识 Python
    方法的入门
  • 原文地址:https://www.cnblogs.com/alking1001/p/11455411.html
Copyright © 2011-2022 走看看