Codeforces Round #640 C. K-th Not Divisible by n

本文提供了一种高效的算法,用于找出第k个不能被n整除的正整数。通过分析数字分布规律,文章给出了一种快速计算的方法,适用于大范围的输入数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C. K-th Not Divisible by n
time limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
You are given two positive integers n and k. Print the k-th positive integer that is not divisible by n.

For example, if n=3, and k=7, then all numbers that are not divisible by 3 are: 1,2,4,5,7,8,10,11,13…. The 7-th number among them is 10.

Input
The first line contains an integer t (1≤t≤1000) — the number of test cases in the input. Next, t test cases are given, one per line.

Each test case is two positive integers n (2≤n≤109) and k (1≤k≤109).

Output
For each test case print the k-th positive integer that is not divisible by n.

Example
inputCopy
6
3 7
4 12
2 1000000000
7 97
1000000000 1000000000
2 1
outputCopy
10
15
1999999999
113
1000000001
1

分析:
给定n k,找到第k个不能被n整除的数字输出

1~n;
n+1~2n;
2
n+1~3*n;

每块里n-1个不能被整除的数字


int t,n,m;
int k;
int a[10];
int i;

int main() {
    scanf("%d",&t);
    while(t--) {
        cin>>n>>k;
        ll nn=n*(k/(n-1));
        k%=(n-1);
        if(k!=0)
            cout<<nn+k<<endl;
        else
            cout<<nn-1<<endl;
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值