la lógica matemática de Java

suryanandan:

Hola Estoy tratando de la lógica correcta para las siguientes declaraciones.

  • Si 'ancho de banda' es de 250 o más por debajo de la 'número de usuarios' (NumberOfUsers), entonces el Estado VPN es 'A' (Ancho de banda> NumberOfUsers + 250)
  • Si 'ancho de banda' está entre 'NumberOfUsers' y 250 por debajo de 'NumberOfUsers', entonces el estado es 'B' (ancho de banda entre NumberOfUsers + 1 a NumberOfUsers + 249)
  • Si 'ancho de banda' es igual o superior a 'NumberOfUsers', entonces el estado es 'C' (ancho de banda <= NumberOfUsers).

Este es el código que intentó

            if (bandwidthValue > numberofusersValue + 250) {
               setVpnStatus(A);
            } else if (bandwidthValue >= numberofusersValue+1    && bandwidthValue <= numberofusersValue + 249) {
                setVpnStatus(B);
            } else if (bandwidthValue <= numberofusersValue) {
                setVpnStatus(C);
            }

Pruebas

        User Entered - 
                    BandwidthValue      =   1234
                    NumberofUsersValue  =   900

        Vpn Status Expected By the user - C 
        PASSED

    User Entered - 
                BandwidthValue      =   1234
                NumberofUsersValue  =   1234

    Vpn Status Expected By the user - C 
    PASSED

    User Entered - 
                BandwidthValue      =   1236
                NumberofUsersValue  =   1234

    Vpn Status Expected By the user - B 
    Unable to set any status - FAILING
  • No funcionó para los casos de prueba de terceros.

¿El código anterior es válido para los valores de x = BandwidthValue y NumberofUsersValue = y para estas declaraciones antes mencionadas?

Arvind Kumar Avinash:

La siguiente lógica cumple con el requisito en su pregunta:

if (bandwidthValue <= (numberofusersValue - 250)) {
    setVpnStatus(A);
} else if (bandwidthValue != numberofusersValue && (bandwidthValue - numberofusersValue <= 250)
                || (bandwidthValue > (numberofusersValue - 250) && bandwidthValue < numberofusersValue)) {
    setVpnStatus(B);
} else {
    setVpnStatus(C);
}

Manifestación:

public class Main {
    public static void main(String args[]) {
        // Tests
        System.out.println(getVpnStatus(1234, 900));
        System.out.println(getVpnStatus(1234, 1234));
        System.out.println(getVpnStatus(1236, 1234));
    }

    static char getVpnStatus(int bandwidthValue, int numberofusersValue) {
        char vpnStatus;
        if (bandwidthValue <= (numberofusersValue - 250)) {
            vpnStatus = 'A';
        } else if (bandwidthValue != numberofusersValue && (bandwidthValue - numberofusersValue <= 250)
                || (bandwidthValue > (numberofusersValue - 250) && bandwidthValue < numberofusersValue)) {
            vpnStatus = 'B';
        } else {
            vpnStatus = 'C';
        }
        return vpnStatus;
    }
}

Salida:

C
C
B

Siéntase libre de comentar en caso de cualquier problema / duda.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=321579&siteId=1
Recomendado
Clasificación