Estoy atrapado en esta pregunta de un examen simulado. Necesito multiplicar un número 'de' a un número 'n'. En otras palabras: desde * (desde + 1) (desde + 2) ... * n.
Necesito resolver este problema usando un ciclo while. Lo he hecho hasta ahora y no estoy seguro de qué hacer.
class Fact {
private int factPartND(final int from, final int n) {
int c = 1;
int z = from;
int y = n;
int num = 0;
while (y >= z) {
num += from * (from + c);// need to stop multiplying from for each
// iteration?
c++;
y--;
}
return num;
}
public static void main(String[] args) {
Fact f = new Fact();
int test = f.factPartND(5, 11);
System.out.println(test);
}
}
Tu cálculo es:
from * (from + 1) * (from + 2) * ... * (from + n)
Piense en cada factor como una iteración de su ciclo.
Por lo tanto, su segunda iteración debe multiplicar su valor acumulado por (from + 1)
, luego otra iteración por (from + i)
, dónde from < i < n
, y así sucesivamente hasta que multiplique por su valor acumulado (from + n)
.
Su código está muy cerca: tiene (from + c)
en cada iteración, pero su aritmética está mal.
Y como se ha mencionado, es un poco confuso usarlo c
y y
hacer un seguimiento de su ciclo, cuando es suficiente para probarlo c
.
Hay un problema con su condición dewhile
bucle .
while(y>=z)
{
....
}
ejecutará su código por n + 1 veces. es decir, si desea ejecutar de 5 a 11, esta condición permitirá ejecutar hasta 12.
Mejor uso while(y>z)
condición de en el ciclo while.
public class Fact {
private int factPartND(final int from, final int n) {
int m = 1;
int result = from;
while (m <= n) {
result *= (from + m++);
}
return result;
}
public static void main(String[] args) {
Fact f = new Fact();
int test = f.factPartND(5, 8);
System.out.println(test);
}
}
Si lo haces con 5, 11 tienes un desbordamiento. entonces deberías usar BigInteger en lugar de int.
Estoy en la etapa de aprendizaje del selenio e intento obtener valores del siguiente código html. Hay varias etiquetas y quiero valores de texto de todas las etiquetas, por ejemplo: driver.findElement (By ...
Tengo un código telnet en Java usando org.apache.commons.net.telnet.TelnetClient Y estoy proporcionando información de inicio de sesión al leer "login:" del servidor telnet a través del siguiente código, en = telnet ....
Implemento un paquete 'apollo-android' y genero el archivo java 'FeedQuery' desde 'schema.json'. Pero no puedo importar ese archivo Java 'FeedQuery' a mi proyecto.
Hola, estoy tratando de obtener la clave extranjera para una tabla determinada, estoy usando este código: ResultSet rs = meta.getImportedKeys (_con.getCatalog (), null, _tableName); while (rs.next ()) {/ ...