关注
nk题思路理解: 1.首先看题目给的条件,1<=(x,y)<=n ,x%y >= k 2.分为两大类,k==0时(x,y)取任何值都可以,这样的情况下总数count = n*n 3.k != 0时,由 x%y >= k 转换成 x = a*y + b,可知y肯定是大于k的,所以固定y,从y=k+1遍历到y=n,然后对每个y,a 可以取的值有[0,n/y),b可以取的值有[k,y),注意这里的区间都是左闭右开,所以count+=(n/y)*(y-k) 4.需要单独考虑的是a == n/y时的情况,如果此时n%y >= k,那么a可以取n/y,此时count需要再加上n%y-k+1 Java代码如下:
import java.util.Scanner; public class Main { public static void main(String[] args) {
Scanner in = new Scanner(System.in); int n = in.nextInt(); int k = in.nextInt(); long count = 0; if (k == 0) {
System.out.println(n*n);
} else { for (int y = k + 1; y <= n; y++) {
count += (n / y) * (y - k); if (n % y >= k) {
count += n % y - k + 1;
}
}
System.out.println(count); }
}
}
查看原帖
点赞 1
相关推荐
童话镇的小红帽:佬的学历很顶吧
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
6513次浏览 110人参与
# 工作中的卑微时刻 #
33441次浏览 199人参与
# 牛客AI体验站 #
16273次浏览 286人参与
# 多益网络工作体验 #
63176次浏览 306人参与
# 有必要和同事成为好朋友吗? #
1036次浏览 21人参与
# 正在实习的碎碎念 #
1645003次浏览 13716人参与
# 面试中的破防瞬间 #
1190262次浏览 11027人参与
# 工作一周年分享 #
52342次浏览 274人参与
# 滴!实习打卡 #
786579次浏览 6841人参与
# 秋招吐槽大会 #
304316次浏览 1523人参与
# 机械人的薪资开到多少,才适合去? #
165043次浏览 571人参与
# 你最满意的offer薪资是哪家公司? #
71398次浏览 353人参与
# 大学最后一个寒假,我想…… #
89290次浏览 809人参与
# 你怎么看待AI面试 #
146039次浏览 786人参与
# 哪些公司真双非友好? #
62909次浏览 268人参与
# OC/开奖 #
411305次浏览 2282人参与
# 为了实习逃课值吗? #
65793次浏览 526人参与
# 如果可以选,你最想从事什么工作 #
722040次浏览 4870人参与
# 重来一次,你会对开始求职的自己说 #
32835次浏览 388人参与
# 如何提高实习转正率? #
86552次浏览 505人参与

查看12道真题和解析