网易2018笔试-正整数对(x,y),x,y都小于等于n,x/y大于等于k。
2018-03-28 09:27
274 查看
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int k = scanner.nextInt();
System.out.println(searchCount(n, k));
}
public static long searchCount(int n, int k) {
if(k == 0) {
return (long)n*n;
}
int count = 0; //记录找到的整数对个数
int temp;
//思路:固定y,找x
for (int y = k + 1; y <= n; y++) { // x/y>=k,说明y>k
// 假设n = a*y +b;在每个长度为y的区间里只有(y-k)个数模y余数>=k。
count += n/y*(y-k);
temp = n%y;
if(temp >= k) { //再考虑余数b是否>=k
count += temp-k+1;
}
}
return count;
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int k = scanner.nextInt();
System.out.println(searchCount(n, k));
}
public static long searchCount(int n, int k) {
if(k == 0) {
return (long)n*n;
}
int count = 0; //记录找到的整数对个数
int temp;
//思路:固定y,找x
for (int y = k + 1; y <= n; y++) { // x/y>=k,说明y>k
// 假设n = a*y +b;在每个长度为y的区间里只有(y-k)个数模y余数>=k。
count += n/y*(y-k);
temp = n%y;
if(temp >= k) { //再考虑余数b是否>=k
count += temp-k+1;
}
}
return count;
}
}
相关文章推荐
- C++常考笔试题:不用if,while,do-while,for,打印出所有大于0小于k的整数.函数原型void printLess(int k);
- 输入任意一个大于2的正整数n,输出所有小于等于n的素数
- 给定一个字符串和一个整数k,对字符串开头算起的每2k个字符的前k个字符进行反转。 如果还有少于k个字符,则将其全部撤消。 如果小于2k但大于或等于k个字符,则反转前k个字符,
- 写出一个程序,接受一个浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整
- 输出所有小于等于n(n为一个大于2的正整数)的素数
- 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
- 实现随机整数[a,b),大于等于a,小于b
- 输入整数(n是小于9位数的整数),当作字符串处理, 看是否有相同的子串,如1212,相同子串是12, 141516则没有子串(子串长度必须大于等于2)。 若
- 网易2018秋招笔试[编程题] 彩色的砖块
- asp.net中“无效的CurrentPageIndex值。它必须大于等于0且小于PageCount”错误的解决方法
- 大于等于0小于等于100的正数用正则表达式表示
- 二分法查找(大于,大于等于x的最小,小于,小于等于x的最大值)
- 如何用Java编写从命令行输入一个整数N,当N小于或等于5则求1+2+3+
- 浅谈中缀表达式的求值(带符号,等于,不等于,大于,小于,与,或,非,等等)
- 将数组中所有小于或等于0的元素都放在数组前面,大于0的元素放在数组后面
- 无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount之解决
- 无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount
- linux shell中 if else以及大于、小于、等于逻辑表达式介绍
- [shell] if else以及大于、小于、等于逻辑表达式
- 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。