根据其他int值验证int值

本文关键字:int 验证 其他 | 更新日期: 2023-09-27 18:12:59

我有4个变量(int值(:

int adults = 0;
int child = 0;
int singleMoto = 0;
int doubleMoto = 0;

规则如下:

singleMoto是一款只有1名成年人才能乘坐的摩托车。doubleMoto是一款摩托车,只有两名成年人或一名带一个孩子的成年人才能乘坐。

所以如果我有:

adults = 3;
child = 0;
singleMoto = 2;
doubleMoto = 1;

上述验证是FALSE,因为:

3名成人和0名儿童的配置为3个singleMotoOR1个singleMoto和1个doubleMoto

其他示例可能是:

adults = 5;
child = 1;
singleMoto = 4;
doubleMoto = 1;

上述验证是TRUE,因为:

5名成人和1名儿童配置:

4 singleMoto与1 doubleMoto

2 singleMoto与2 doubleMoto

现在我用简单的IF语句来验证这一点,比如:

if(adults == 3 and child == 0){
   // show validation
}

但我确信这可以用MOD%或其他东西来完成。

有线索吗?

根据其他int值验证int值

我想这就是你要问的:

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
if(child <= doubleMoto && (child + 2*(doubleMoto-child) + singleMoto == adults))
   {
     //...
   }

每个孩子都需要一辆双人摩托车。每个带孩子的双人摩托有1名成年人,其他双人摩托有一名,每个单人摩托有一人。

编辑:"child"必须为<=doubleMoto。这是运输它们的唯一途径。剩下的座位必须由成年人坐满。

在双人摩托车上,每个孩子必须有1名成年人陪同。对于没有孩子的摩托车(doubleMoto-child(,每个摩托车有2个成年人。对于每辆单人摩托,只有1辆成人车。

因此,child + 2*(doubleMoto-child) + singleMoto == adults