1 条题解

  • 0
    @ 2025-8-24 21:07:43

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar StarryWander
    Exploring the universe with dreams and stars.

    搬运于2025-08-24 21:07:42,当前版本为作者最后更新于2021-07-13 13:33:45,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    如题本题采用递归形式进制转换。

    前置知识:短除法

    分析:

    • 通过短除法取余数,再将余数倒序输出即可。

    • 对于倒序输出,可以在递归的时候,最后输出余数,这样余数就会倒序输出了。

    • 注意,十进制下除以大于等于 1010 的数会出现两位数的情况,所以需要一个字符串来转换成对应的字母

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    string c="0123456798ABCDEF";//对应字符。
    void f(int x,int m){
    	if(x/m) f(x/m,m);//继续递归。
    	cout<<c[x%m];//倒序输出。
    }
    int main(){
    	int x,m;
    	cin>>x>>m;//输入。
    	f(x,m);//递归。
    	return 0;
    }
    
    
    • 1

    信息

    ID
    7000
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    1
    已通过
    1
    上传者