P1062 数列
P1062 数列
我们把题目中的栗子搞出来:
看最后一列,好像是二进制啊???
我们把最后一列当成二进制,再转换成十进制:
嘿!有趣!
所以我们只要把上面这个过程反过来就好了!
也就是:对于
不得不说这个过程有点像快速幂。。。
附代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,k;
inline int read(){
int date=0,w=1;char c=0;
while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();}
while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();}
return date*w;
}
long long solve(int n,int k){
long long x=1,s=0;
while(n){
if(n&1)s+=x;
x*=k;
n>>=1;
}
return s;
}
int main(){
k=read();n=read();
printf("%lld\n",solve(n,k));
return 0;
}