7、集合--2017网易秋招

[编程题] 集合
时间限制:1秒
空间限制:32768K
小易最近在数学课上学习到了集合的概念,集合有三个特征:1.确定性 2.互异性 3.无序性.
小易的老师给了小易这样一个集合:
S = { p/q | w ≤ p ≤ x, y ≤ q ≤ z }
需要根据给定的w,x,y,z,求出集合中一共有多少个元素。小易才学习了集合还解决不了这个复杂的问题,需要你来帮助他。 
输入描述:
输入包括一行: 一共4个整数分别是w(1 ≤ w ≤ x),x(1 ≤ x ≤ 100),y(1 ≤ y ≤ z),z(1 ≤ z ≤ 100).以空格分隔
 
输出描述:
输出集合中元素的个数
 
输入例子:
1 10 1 1
 
输出例子:
10
解题思路:本题就是针对每一个p和q,求p/q,然后去重,去重使用set存结果,自动去重
注意:p/q时前加double,使得得到的结果为浮点型
 1 #include <iostream>
 2 #include <set>
 3 using namespace std;
 4  
 5 int main()
 6 {
 7     set<double> s;
 8     int w;
 9     int x;
10     int y;
11     int z;
12     while(cin>>w>>x>>y>>z)
13     {
14         for(int i = w;i<=x;i++)
15         {
16            for(int j=y;j<=z;j++)
17            {
18                double result = (double)i/j;
19                s.insert(result);
20            }
21         }
22         cout<<s.size()<<endl;
23     }
24     return 0;
25 }

 

posted @ 2017-05-31 09:36  qqky  阅读(183)  评论(0编辑  收藏  举报