1. 程式人生 > >PAT 乙級 1087 有多少不同的值

PAT 乙級 1087 有多少不同的值

1087 有多少不同的值 (20 point(s))

當自然數 n 依次取 1、2、3、……、N 時,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少個不同的值?(注:⌊x⌋ 為取整函式,表示不超過 x 的最大自然數,即 x 的整數部分。)

輸入格式:

輸入給出一個正整數 N(2≤N≤10​4​​)。

輸出格式:

在一行中輸出題面中算式取到的不同值的個數。

輸入樣例:

2017

輸出樣例:

1480

經驗總結:

簡單的划水題~~不多說啦~

AC程式碼 

#include <cstdio>
#include <map>
using namespace std;
int main()
{
	int n;
	map<int ,int> mp;
	while(~scanf("%d",&n))
	{
		for(int i=1;i<=n;++i)
		{
			int key=i/2+i/3+i/5;
			if(mp.count(key)==0)
				mp[key]=1;
		}
		printf("%d\n",mp.size());
	}
	return 0;
}