PAT 乙级 1087.有多少不同的值 C++/Java
当自然数 n 依次取 1、2、3、……、N 时,算式 ⌊ 有多少个不同的值?(注:⌊ 为取整函数,表示不超过 x 的最大自然数,即 x 的整数部分。)
输入格式:
输入给出一个正整数 N(2)。
输出格式:
在一行中输出题面中算式取到的不同值的个数。
输入样例:
2017
输出样例:
1480
C++实现:
1 #include <iostream> 2 #include <set> 3 using namespace std; 4 //1087:有多少不同的值 5 int main() { 6 int n, res; 7 cin >> n; 8 set<int> cnt; 9 for (int i = 1; i <= n; i++) { 10 res = i / 2 + i / 3 + i / 5; 11 cnt.insert(res); 12 } 13 cout << cnt.size(); 14 return 0; 15 }
Java实现:
1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner input = new Scanner(System.in); 6 int n = input.nextInt(); 7 int[] t = new int [2 * n]; 8 int result; 9 int count = 0; 10 for (int i = 1; i <= n; i++) { 11 result = i / 2 + i / 3 + i / 5; 12 t[result] = 1; 13 } 14 for (int i = 0; i < 2 * n; i++) { 15 if(t[i] == 1){ 16 count++; 17 } 18 } 19 System.out.print(count); 20 } 21 }