1 条题解

  • 0
    @ 2025-8-24 21:15:37

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar we_are_the_chuibing
    z

    搬运于2025-08-24 21:15:36,当前版本为作者最后更新于2024-03-09 20:38:14,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    简单的一道模拟题。

    思路

    先将 nn 拆成二进制下 77 位一截的形式,再在第一位判断是否是最高位。最后转十六进制直接输出。

    具体见代码。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    long long n;
    string a="0123456789ABCDEF";//十六进制的数字
    void print(int i){//输出
    	cout<<a[i/16]<<a[i%16]<<" ";
    }
    int main(){
    	cin>>n;
    	if(n==0){cout<<"00";return 0;}//0需要特判
    	while(n>0){
    		int k=n%128;//2^7=128,7位一截
    		n/=128;
    		if(n>0)print(k+128);//判断是否为最高位
    		else print(k);
    	}
    	return 0;
    }
    

    本题数据较水,不特判 00 也能过。建议添加 n=0n=0 的数据。

    • 1

    信息

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