网易2017春招笔试题(1)

时间:2021-09-24 14:40:49
[编程题] 集合

时间限制: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:
1 10 1 1

输出例子1:
10
解答如下:
#include <stdio.h>
int main()
{
int w,x,y,z;
scanf("%d %d %d %d",&w,&x,&y,&z);
int num=0;
int length=(x-w+1)*(z-y+1);
float a[length];
for (int i= w; i <=x; i++)
{
for (int j = y; j <=z; j++)
{
if(num==0)
{
a[num]=(float)i/j;
num++;
}
else
{
int flag=1;
a[num]=(float)i/j;
for(int k=0;k<num;k++)
{
if(a[k]==a[num])
flag=0;
}
if(flag){
num++;
}
}
}
}
printf("%d\n", num);
return 0;
}