Red de conocimiento informático - Computadora portátil - Rellene los espacios en blanco en lenguaje C: Problema de los cien caballos y los cien danes

Rellene los espacios en blanco en lenguaje C: Problema de los cien caballos y los cien danes

Lo que buscas es el número de caballos, para que no haya ambigüedad

#include

int main(void){

int i,j,k;

for(i=100/3;i>0;i--)

for(j=100/ 2;j>0 ;j--)

for(k=100;k>0;k-=2){

if(((i+j+k) ==100)&& ((3*i+2*j+k/2 )== 100))

printf("%d ,%d ,%d\n", i,j, k);

}

return 0;

}

La persona de arriba dijo que mi lógica estaba equivocada hace un momento, pero No es así, porque 34*3>100, si se toma el valor superior, excede 100, por lo que el valor se toma directamente.

Hablas de lógica, entonces vamos a demostrarla lógicamente:

Supongamos r = [a/b]+1, donde a es el número total de cargas y b es el número de cargas por caballo

p>

Entonces cuando [a/b] = a/b, hay r = a/b + 1, r> a/b

Cuando [a/b] < a/b , porque 0 < a/b - [a/b] < 1, hay a/b < [a/b] + 1 = r, es decir, r > a/b

En resumen: r > a /b

Además: a/b * b = a, entonces debe haber r * b > a

Según el Dadas las condiciones, para cualquier número de caballos x, debe haber x* b <= a

Por lo tanto, r no pertenece al conjunto en el que existe x y no está dentro del rango de valores.

Piénsalo bien antes de sacar una conclusión