Problema del coco marinero de programación en lenguaje C. Escribí un programa y la respuesta es incorrecta.
#Include ? & ltstdio.h & gt
# incluir & ltstdlib.h & gt
# incluir & ltmath.h & gt
main()
{
int? ¿norte? ;? //Número de marineros
printf("Input?n(1<n<=5):\n");
scanf("%d ",& ampn );
//Aumentar la robustez del programa
If (n & gt1. & ampn & lt=5)
printf("y=%d \n ",Coconu?(n));
Otro
printf("¡Error!\n");
Sistema("pausa"); p>
}
int? ¿Coconú? (int?n)
{
int? ¿I? ;? //Variable de bucle interno
int? j = 1;? //Variable de bucle externo,
int? s;? //El número original de cocos
int? r;? //¿Qué hace la variable de iteración
? //Primer ciclo: Después de la participación promedio del último marinero, aumenta el número de cocos por participación, comenzando desde 1 (el valor mínimo es 1).
{
r=j*n+1? ;? //El número total de cocos del último marinero
//? El segundo ciclo: obtiene el número original de cocos mediante iteración y recursividad inversa.
for(I = n-1;I>0;I-)
{
//? Durante el proceso de iteración, si la recursividad inversa es inseparable, saltará fuera del bucle. (Porque el coco debe estar entero)
if(r%(n-1)!=0)
Romper;
//?Repetir p> p>
s =(r/(n-1))* n+1;
r = s;
}
j++ ;
}Y (I!=0);? //i=0 indica que el ciclo se completa y el ciclo completo S es el número final de cocos originales.
¿Volver? s;
}