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;
    }
    
    欢迎评论交流!
  • 相关阅读:
    基于注解的IOC配置
    字符串典型问题分析
    指针与数组
    数组的本质
    数组与指针分析
    指针的本质
    #与##操作符使用
    #pragma使用分析
    #error和#line使用分析
    条件编译使用
  • 原文地址:https://www.cnblogs.com/alking1001/p/11455411.html
Copyright © 2011-2022 走看看