P8225 题解
这道题其实不难,主要是这个题目背景没点二次元或许还真的看不懂。好在题目描述给了简化版。
整理一下思路就会发现其实很简单:有一个所谓的“ k 进制天才数”,这个数简单来说就是 k 的倍数个 9 组成的数,这里我们可以简化 k 的倍数为 能被 k 个 9 整除的数 即可。
这样一来“能不能把 n 拆分成若干个 k 阶天才数的和。”这个问题就变成了 “ n 能不能被 k 个 9 整除。” 这样就简单了。
代码如下,细节见注释:
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
scanf("%d",&t);//输入t组
for(int i=0;i<t;i++){
long long n,k;
scanf("%lld %lld",&k,&n);//每组给出k和n,注意顺序
long long ktian=0,cnt=1;
while(k){
ktian+=(9*cnt);
cnt*=10;
k--;
}//计算“k个9”
if(n%ktian==0){
printf("aya\n");
}else{
printf("baka\n");
}//判断能不能被整除并输出
}
return 0;
}