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 }

 

posted @ 2021-05-05 18:00  47的菠萝~  阅读(42)  评论(0编辑  收藏  举报