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); p>
}
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