首页 > 代码库 > RNQOJ 4 数列
RNQOJ 4 数列
把N化成二进制是关键,比如把序号10化成二进制就是1010,对于K=2来说第10个数就是2^3+2^1,对于k=3来说第10个数就是3^3+3^1;这里只需要把K替代一下就可以解决了
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<vector> using namespace std; int dig[24]; int main() { int k,n; while(cin>>k>>n) { int rel_k=k; memset(dig,0,sizeof(dig)); int temp=0; int total=0; while(n) { dig[temp++]=n%2; n/=2; } for(int i=0;i<temp;i++) { if(i>1) { rel_k*=k; } if(dig[i]&&i==0) { total+=1; } else if(dig[i]) { total+=rel_k; } } cout<<total<<endl; } return 0; }
RNQOJ 4 数列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。