先秒一波签到题
2024-03-18 13:14:16
发布于:广东
23阅读
0回复
0点赞
不能被3整除的序列:1 2 _ 4 5 _ 7 8 _ 10 11
不能被5整除的序列:1 2 3 4 _ 6 7 8 9 _ 11
我们可以发现:每隔n-1个数就会跳过一个,算上这跳过的就一共是n个数,再加上剩余的数,第k个数就是k/(n-1)*n+k%(n-1).
当然,如果这个数刚好被整除,就要往前一位
#include <iostream>
#include <cstdio>
using namespace std;
int a[100005], ct;
int main(){
int t, n, k;
scanf("%d", &t);
while(t--){
scanf("%d%d", &n, &k);
a[++ct] = k / (n - 1) * n + k % (n - 1);
if(a[ct] % n == 0) a[ct]--;
}for(int i = 1; i <= ct; i++) printf("%d\n", a[i]);
return 0;
}
这里空空如也
有帮助,赞一个