1 条题解

  • 0
    @ 2025-8-24 23:05:02

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar yummy
    这个人是时代的眼泪,什么也没有留下

    搬运于2025-08-24 23:05:02,当前版本为作者最后更新于2024-10-16 11:29:10,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    A. 带余除法 (division) 官方题解

    本题考查的主要知识点有:

    • 【1】代数(初中部分)
    • 【2】for 语句、if 语句、输入输出语句

    首先特判 k=0k=0,此时答案为 11。当 k>0k>0 时,每个 qq 都对应一个 rr,讨论 qq 的个数:

    考虑带余除法的定义,n=kq+rn=kq+r。代入 0r<q0\le r < q 可得 kqn<kq+qkq\le n < kq+q。换言之,nk+1<qnk\dfrac{n}{k+1}<q\le \dfrac{n}{k}

    qq 为整数时,它等价于 $\lfloor \dfrac{n}{k+1}\rfloor<q\le \lfloor \dfrac{n}{k}\rfloor$,只要输出 $\lfloor \dfrac{n}{k}\rfloor-\lfloor \dfrac{n}{k+1}\rfloor$ 即可。

    #include<bits/stdc++.h>
    using namespace std;
    long long T,n,k;
    int main(){
    	for(cin>>T;T;T--){
    		cin>>n>>k;
    		if(k!=0)cout<<n/k-n/(k+1)<<endl;
    		else cout<<1<<endl;
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    10817
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者