zoukankan      html  css  js  c++  java
  • 【解题报告】洛谷P1017 进制转换

    【解题报告】洛谷P1017 进制转换

    题目链接

    https://www.luogu.com.cn/problem/solution/P1017

    思路

    我们知道进制的转换是可以从十进制转换到其他进制的

    所以我们考虑是怎么转换的

    假设数字为 (n) ,我们要把它转化成 (k) 进制的话,我们就要对其进行一波操作,每次对它进行魔(模)法,剩下来的数字就是他的对应的进制位置上的数字,举个例子,比如192转化为八进制

    [192 space mod space 8=0 \ 192 /8=24 \ 24 space mod space 8 =0 \ 24/8=3 \ 3 space mod space 8=3 ]

    然后从下往上倒序输出就是 (300_{(8)})

    还原回去

    [3 imes 8^2=192 ]

    成立,所以说明我们的方法是对的

    然后我们考虑负数,负数魔法有余数小于零怎么办啊

    那我们就类似于借位,把余数借成正数再输出

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #include <string>
    using namespace std;
    int n,r;
    char s[100005];
    int len;
    int main()
    {
    	cin>>n>>r;
    	cout<<n<<"=";
    	while(n!=0)
    	{
    		int divi=n%r;
    		n/=r;
    		if(divi<0)
    		divi-=r,n++;
    		if(divi<10)
    		s[++len]=(char)(divi+48);
    		else
    		s[++len]=(char)((divi-10)+'A');
    	}
    	for(int i=len;i>=1;i--)
    	putchar(s[i]);
    	cout<<"(base"<<r<<")"<<'
    ';
    	return 0;
    }
    
    本博文为wweiyi原创,若想转载请联系作者,qq:2844938982
  • 相关阅读:
    poj 1743 Musical Theme 后缀数组
    poj 1743 Musical Theme 后缀数组
    cf 432D Prefixes and Suffixes kmp
    cf 432D Prefixes and Suffixes kmp
    hdu Data Structure? 线段树
    关于position和anchorPoint之间的关系
    ios POST 信息
    CALayers的代码示例
    CALayers详解
    ios中得sqlite使用基础
  • 原文地址:https://www.cnblogs.com/wweiyi2004/p/15406276.html
Copyright © 2011-2022 走看看