我有4个变量(int值):
int adults = 0;
int child = 0;
int singleMoto = 0;
int doubleMoto = 0;
规则如下:
singleMoto
是一个摩托车,只有一个成年人可以骑。
doubleMoto
是一辆摩托车,只有2名成人或1名成人和1名儿童可以骑行。
所以,如果我有:
adults = 3;
child = 0;
singleMoto = 2;
doubleMoto = 1;
上述验证为 FALSE ,原因是:
3名成人和0名儿童配置为3
singleMoto
或 1singleMoto
和1doubleMoto
其他例子可能是:
adults = 5;
child = 1;
singleMoto = 4;
doubleMoto = 1;
以上验证为 TRUE ,原因是:
5名成人和1名儿童配置:
4
singleMoto
AND 1doubleMoto
2
singleMoto
AND 2doubleMoto
现在我使用简单的IF
语句验证这一点,如:
if(adults == 3 and child == 0){
// show validation
}
但我确信这可以使用MOD%或其他东西来完成。
有任何线索吗?
答案 0 :(得分:0)
if(child <= doubleMoto && (child + 2*(doubleMoto-child) + singleMoto == adults))
{
//...
}
每个孩子都需要一个doubleMoto。每个双人有1个成人,有孩子,1个为另一个双人,每个单人1个。
编辑: 'child'必须是&lt; = doubleMoto。这是他们运输的唯一方式。 剩余的座位必须由成年人填补。
在双摩托车上,每名儿童必须陪同1名成人。对于没有孩子的摩托车(doubleMoto - child),每个都有2个成年人。对于每个单人摩托车,只有1名成年人乘坐。
因此,child + 2*(doubleMoto-child) + singleMoto == adults
答案 1 :(得分:0)
我认为这就是你要问的问题:
public static bool Validate(int adults, int children, int singleMoto, int doubleMoto)
{
var childSeats = doubleMoto;
var adultSeats = doubleMoto * 2 + singleMoto;
if (children > childSeats)
{
return false;
}
adultSeats -= children;
return adults == adultSeats;
}
输出:
Validate(3,0,2,1) -- false
Validate(5,1,4,1) -- true
Validate(2,1,3,0) -- false