解题思路:
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <iostream>
using namespace std;
typedef long long LL;
int m,a[102];
LL n;
int main()
{
freopen("great.in","r",stdin);
freopen("great.out","w",stdout);
while(~scanf("%lld%d",&n,&m))
{
LL t=n;
int cnt=0;
while(t!=0)
{
a[++cnt]=t%m;
t/=m;
}
LL ans=0;
for(int i=cnt;i>=1;i--)
{
if(i%2==0&&a[i]>0)
{
t=1;
for(int j=i-1;j>=1;j-=2)
{
t*=m;
}
ans+=t;
break;
}
if(i%2==1&&a[i]>0&&i!=1)
{
t=1;
for(int j=i-2;j>=1;j-=2)
{
t*=m;
}
ans+=t*a[i];
}
if(i%2==1&&i==1)
{
ans+=a[i]+1;
}
}
printf("%lld\n",ans);
}
return 0;
}
/*
21 3
21 2
*/