2 条题解

  • 0
    @ 2026-8-20 13:37:39
    # include <bits/stdc++.h>
    
    using namespace std;
    int k,ans;string s;
    int n;
    int main(){
    	cin>>k>>n;
    	s="";
    	while(n){
    		s+=(n&1)+'0';
    		n>>=1;
    	}
    	reverse(s.begin(),s.end());
    	for(int i = 0;i<s.size();i++){
    		ans*=k;
    		ans+=s[i]-'0';
    	}
    	cout<<ans<<'\n';
    	return 0;
    }
    

    对k的幂次方选择其实就是把n转换成2进制再把它当作k进制转换成十进制

    信息

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