我想在 4 个整数变量i,j,k
和l
. 对称性是:
- 所有四个数字都相等:XXXX,
- 三个数相等:XXXY,XXYX,XYXX,YXXX
- 两对相等的数字:XXYY,XYXY,XYYX,...
- 一对相等的数和两个不同的数:XXYZ,XYXZ,XYZX,...
- 所有的数字都是不同的。
所有变量都在某个非连续范围内运行。我使用嵌套的 if else 语句。第一个 if 检查所有变量的不等式。如果没有,那么我有案例 1。下一个 if 检查是否有任何相等的对。如果不是,那么情况 5。下一个 if 检查三个相等的数字。如果为真,则为情况 2。否则,最后一个 if 检查两对相等的数字。如果为真,则为情况 3,否则为情况 4。
if(!(i==j && j==k && k==l)){
if(i==j || i==k || i==l || j==k || j==l || k==l){
if((i==j && j==k) || (i==j && j==l) || (i==k && k==l) || (j==k && k==l)){ ...//do something
}else{
if((i==j && k==l) || (i==k && j==l) || (i==l && j==k)){
...//do something
}else{
...//do something
}
}
}else{
...//do something
}
}else{
...//do something
}
有没有更好的方法来做到这一点?我的意思是更好的性能,因为我必须做这个测试数百万次。