zoukankan      html  css  js  c++  java
  • PAT (Basic Level) Practice (中文) 1087 有多少不同的值 (20分)

    1.题目

    当自然数 n 依次取 1、2、3、……、N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取整函数,表示不超过 x 的最大自然数,即 x 的整数部分。)

    输入格式:

    输入给出一个正整数 N(2≤N≤10​4​​)。

    输出格式:

    在一行中输出题面中算式取到的不同值的个数。

    输入样例:

    2017
    

    输出样例:

    1480

    2.题目分析

    最大值为5000+2000+3333.3333=10333.3333,所以数组>10333就行,但是可能存在结果为0情况,就把0的标记放在数组末尾 

    遍历结果有可能>N,所以要一直遍历到数组末尾

    3.代码

    #include<iostream>
    using namespace std;
    int list[10336];
    int main()
    {
    	int n;
    	cin >> n;
    	for (int i = 1; i <= n; i++)
    	{
    		double t = i;
    		int temp = (int)t / 2 + (int)t / 3 + (int)t / 5;
    		if(temp!=0)list[temp]++;
    		else list[10335]++;
    	}
    	int count = 0;
    	for (int i = 0; i < 10334; i++)
    		if (list[i] != 0)count++;
    	if (list[10335] != 0)count++;
    	cout << count;
    }
    
  • 相关阅读:
    Redis 集群模式
    Redis 哨兵模式
    加密盐的意义
    GeoJSON扩展几何图形格式
    GeoJSON格式规范说明
    个人作业-记账本
    疫情数据爬取
    数据库的修改
    《构建之法》读书笔记(三)
    《构建之法》读书笔记(二)
  • 原文地址:https://www.cnblogs.com/Jason66661010/p/12788903.html
Copyright © 2011-2022 走看看