Chinaunix首页 | 论坛 | 博客
  • 博客访问: 631145
  • 博文数量: 37
  • 博客积分: 106
  • 博客等级: 民兵
  • 技术积分: 993
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-30 18:26
个人简介

来自汉江北邻的IT男一枚,专注于PHP和C#开发... 最常更新的技术Blog → https://enjoy233.cnblogs.com/

文章分类

全部博文(37)

文章存档

2013年(36)

2012年(1)

我的朋友

分类: C/C++

2013-04-01 19:14:35


                                                    输入两个闭区间,求其交集,并集和差集(C++)

#includeusing namespace std;
int main(){
int a,b;
int c,d;
cout<<"请输入第一个闭区间的a,b"<>a>>b;
cout<<"请输入第二个闭区间的c,d"<>c>>d;
if(a>b||c>d) { cout<<"输入的区间不合法"< }
else
{
if(d {
cout<<"交集为:
"< cout<<"为:"<<"["< cout<<"差集为:"<<"["< }
else if(c>b)
{
cout<<"交集为:空集"< cout<<"并集为:"<<"["< cout<<"差集为:"<<"["< }
else if(c {
int min,max;
if(d>b) min=b,max=d;else min=d,max=b;
cout<<"交集为:"<<"["< cout<<"并集为:"<<"["< if(d>=b) cout<<"差集为:空集"< else cout<<"差集为:"<<"["< }
else
{
int min,max;
if(d>b) min=b,max=d;else min=d,max=b;
cout<<"交集为:"<<"["< cout<<"并集为:"<<"["< if(c<=a) cout<<"差集为:空集"< else
{
cout<<"差集为:"<<"["< if(d {
cout<<","<<"["< }
cout< }
}
}
return 0;
}

perl中,实现两个集合的运算很简单,只需几行代码即可

 

Perl代码  收藏代码
  1. @a=('a'..'c',1..3);  
  2. @b=('A'..'C',1..3);  
  3. @union=();#并集  
  4. @diff=(); #差集   
  5. @isect=();#交集  
  6. foreach $e(@a,@b){  
  7.    $union{$e}++&&$isect{$e}++;  
  8. }  
  9. @union=keys %union;  
  10. @isect=keys %isect;  
  11. @diff=grep {$union{$_}==1;} @union;  
  12. print (join ',',@union);  
  13. print "\n";  
  14. print (join ',',@isect);  
  15. print "\n";   
  16. print (join ',', @diff);  

   输出:

Perl代码  收藏代码
  1. A,a,3,B,2,c,1,C,b  
  2. 1,3,2  
  3. A,a,B,c,C,b  

 

 相关链接:


阅读(4318) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~