我正在尝试使用这个 switch - case 语句。我想知道是否有任何其他有效的方法来编写这段代码。“函数”原型是:int function(int a,int b, int c,int d)
switch (u) {
case 1:
t = t + function(0,2,1,0); // 1
break;
case 2:
t = t + function(0,2,1,0); // 1
t = t + function(1,2,2,0); // 2
break;
case 3:
t = t + function(0,2,1,0) ; // 1
t = t + function(1,2,2,0) ; // 2
t = t + function(0,3,3,1) ; // 3
break;
case 4:
t = t + function(0,2,1,0) ; // 1
t = t + function(1,2,2,0) ; // 2
t = t + function(0,3,3,1) ; // 3
t = t + function(1,3,4,1) ; // 4
t = t + function(3,2,4,0) ; // 6
break;
case 5:
t = t + function(0,2,1,0) ; // 1
t = t + function(1,2,2,0) ; // 2
t = t + function(0,3,3,1) ; // 3
t = t + function(1,3,4,1) ; // 4
t = t + function(2,3,5,1) ; // 5
t = t + function(3,2,4,0) ; // 6
t = t + function(4,2,5,0) ; // 7
break;
case 6:
t = t + function(0,2,1,0) ; // 1
t = t + function(1,2,2,0) ; // 2
t = t + function(0,3,3,1) ; // 3
t = t + function(1,3,4,1) ; // 4
t = t + function(2,3,5,1) ; // 5
t = t + function(3,2,4,0) ; // 6
t = t + function(4,2,5,0) ; // 7
t = t + function(3,3,6,1) ; // 8
break;
case 7:
t = t + function(0,2,1,0) ; // 1
t = t + function(1,2,2,0) ; // 2
t = t + function(0,3,3,1) ; // 3
t = t + function(1,3,4,1) ; // 4
t = t + function(2,3,5,1) ; // 5
t = t + function(3,2,4,0) ; // 6
t = t + function(4,2,5,0) ; // 7
t = t + function(3,3,6,1) ; // 8
t = t + function(4,3,7,1) ; // 9
t = t + function(6,2,7,0) ; // 11
break;
case 8:
t = t + function(0,2,1,0) ; // 1
t = t + function(1,2,2,0) ; // 2
t = t + function(0,3,3,1) ; // 3
t = t + function(1,3,4,1) ; // 4
t = t + function(2,3,5,1) ; // 5
t = t + function(3,2,4,0) ; // 6
t = t + function(4,2,5,0) ; // 7
t = t + function(3,3,6,1) ; // 8
t = t + function(4,3,7,1) ; // 9
t = t + function(5,3,8,1) ; // 10
t = t + function(6,2,7,0) ; // 11
t = t + function(7,2,8,0) ; // 12
break;
}
有什么办法可以缩短这段代码?
每个新案例都具有相同的功能,直到前一个案例加上一个或两个新功能。
终极目标:目标是减少代码和代码中的手动输入。
请务必发布答案以减少代码长度。
到目前为止发布的所有答案都没有考虑自动创建数字本身,因为即使这些数字也有它们的模式。