日常签到题
范围是1e9,直接递归算的话会T
之后可以发现,到了后面就是在01之间循环了
所以值到达0之后,根据还要再进行的次数的奇偶性判断即可
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iomanip>
#include<iostream>
#include<cstring>
#include<map>
using namespace std;
int mp[]={1,0,0,0,1,0,1,0,2,1};
int g(int x)
{
int ans=0;
int t;
if(x==0)return 1;
while(x)
{
t=x%10;
ans+=mp[t];
x/=10;
}
return ans;
}
int main()
{
//freopen("input.txt","r",stdin);
int T;
scanf("%d",&T);
int x,k;
while(T--)
{
scanf("%d%d",&x,&k);
while(k--)
{
x=g(x);
if(x==0)
break;
}
if(k>0)
{
if(k&1)
x=1;
}
printf("%d\n",x);
}
return 0;
}