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进制转换成十进制

    • 0
      @ 2026-7-18 16:30:18

      000

      • 1

      信息

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