1087 有多少不同的值 (20分)
原题链接:传送门
一、题目:
输入样例 1:
2017
输出样例 1:
1480
二、解析:
思路:
将所有数不同值存到数组,然后将数组中的不同值输出。
AC代码:
/**
* 1087 有多少不同的值 (20分)
*
* @思路:将所有数不同值存到数组,然后将数组中的不同值输出。
* @author: ChangSheng
* @date: 2019年12月30日 下午10:17:46
*/
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int[] arr = new int[5000+3333+2000+1]; // 所有不同值下标与值都放数组里面
int N = s.nextInt();
for (int i = 2; i <= N; i++) {
int num = i / 2 + i / 3 + i / 5;
arr[num] = num;
}
int count = 1; // 初始值为1,因为i=1时,num=0
for (int i = 1; i < arr.length; i++) {
if (arr[i] != 0) count++;
}
System.out.println(count);
}
}