Red de conocimiento informático - Material del sitio web - Programación de ángulos

Programación de ángulos

Ejecute bajo tc.

1.# incluir & ltstdio.h & gt

# incluir & ltmath.h & gt

void main()

{

Doble a, b, ángulo, c, s;

Printf("Por favor ingrese la longitud de ambos lados y el tamaño del ángulo (datos separados por espacios):\ n");

scanf("%lf %lf %lf ",&one,&b&angle);

if (!(a & gt0 & amp& ampb & gt0 & amp&angle>0 ))

{

Printf("¡La entrada no puede ser negativa o 0!\n ");

Retorno;

}

c=sqrt(a*a+b*b-2*a*b*cos(angle));//Teorema del coseno

s=0.5* a*b* sin(angle); //Fórmula del área

Printf("El tercer lado es %lf, el área es %lf\n ", c, s

}

2. La idea es la siguiente: supongamos que 1 puntúa x, 2 puntúa y y 5 puntúa z, entonces x+2y+5z=30000.

Supongamos que x+y+z=k, según el significado de la pregunta, encuentre el valor mínimo de k. El término de transferencia, x=k-y-z, se introduce en la fórmula anterior: k+y+. 4z = 30000, entonces k = 30000-y-4z, obviamente x>=1, y>=1, z>=1 Entonces k-y-z>=1, es decir, k>=1+y+z. usarse para limitar K en la implementación de la programación. Por supuesto, hay otra forma, que es dejar que x, Y, Z, Y, Z comience a contar desde 1 en un bucle y luego encontrar K, pero la eficiencia no es tan alta como esta idea, porque solo hay un bucle de Y, Z, y debido a que requerimos el K más pequeño, tanto Y como Z deberían cambiar de grande a pequeño. Puede comenzar con y = 15000, z = 3750, y luego y y z disminuir en secuencia (deje que z se bucle en el exterior y y en el interior, para que k pueda cambiar lentamente) hasta el primer k & gt = 1+y+ z. Específicamente, el código es el siguiente:

# include & ltstdio.h & gt

void main()

{

int y, z, k ; // Corresponde a y, z, k arriba.

for(z = 3750; z & gt0;z -)

for(y = 15000; y & gt0;y -)

{

k = 30000-y-4 * z;

if(k & gt;=1+y+z)

{

Printf("Número mínimo de monedas: %d\n ", k);

Printf("La distribución específica es %d 1, %d 2, %d 5 \n ", k-y-z, y, z) ;

Regresar;

}

}

}