输入两个闭区间,求其交集,并集和差集(C )
C :
代码语言:javascript复制#include<iostream>using namespace std;
int main() {
int a,b;
int c,d;
cout<<"请输入第一个闭区间的a,b"<<endl;
cin>>a>>b;
cout<<"请输入第二个闭区间的c,d"<<endl;
cin>>c>>d;
if(a>b||c>d) {
cout<<"输入的区间不合法"<<endl;
} else {
if(d<a) {
cout<<"交集为:空集"<<endl;
cout<<"并集为:"<<"["<<c<<","<<d<<"]"<<","<<"["<<a<<","<<b<<"]"<<endl;
cout<<"差集为:"<<"["<<a<<","<<b<<"]"<<endl;
} else if(c>b) {
cout<<"交集为:空集"<<endl;
cout<<"并集为:"<<"["<<a<<","<<b<<"]"<<","<<"["<<c<<","<<d<<"]"<<endl;
cout<<"差集为:"<<"["<<a<<","<<b<<"]"<<endl;
} else if(c<a) {
int min,max;
if(d>b) min=b,max=d;
else min=d,max=b;
cout<<"交集为:"<<"["<<a<<","<<min<<"]"<<endl;
cout<<"并集为:"<<"["<<c<<","<<max<<"]"<<endl;
if(d>=b) cout<<"差集为:空集"<<endl;
else cout<<"差集为:"<<"["<<d-1<<","<<b<<"]"<<endl;
} else {
int min,max;
if(d>b) min=b,max=d;
else min=d,max=b;
cout<<"交集为:"<<"["<<c<<","<<min<<"]"<<endl;
cout<<"并集为:"<<"["<<a<<","<<max<<"]"<<endl;
if(c<=a) cout<<"差集为:空集"<<endl;
else {
cout<<"差集为:"<<"["<<a<<","<<c-1<<"]";
if(d<b) {
cout<<","<<"["<<d-1<<","<<b<<"]";
}
cout<<endl;
}
}
}
return 0;
}
perl集合运算之交集,并集,差集
perl中,实现两个集合的运算很简单,只需几行代码即可
Perl代码:
代码语言:javascript复制@a=('a'..'c',1..3);
@b=('A'..'C',1..3);
@union=();#并集
@diff=(); #差集
@isect=();#交集
foreach $e(@a,@b){
$union{$e} &&$isect{$e} ;
}
@union=keys %union;
@isect=keys %isect;
@diff=grep {$union{$_}==1;} @union;
print (join ',',@union);
print "n";
print (join ',',@isect);
print "n";
print (join ',', @diff);
输出:
Perl代码
- A,a,3,B,2,c,1,C,b
- 1,3,2
- A,a,B,c,C,b