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.