[cfinformatica-grup] Re: [cfinformatica-grup] Re: [cfinformatica-grup] Exercicis de programació

  • From: Alejandro Castán Salinas <acastan@xxxxxxxx>
  • To: cfinformatica-grup@xxxxxxxxxxxxx
  • Date: Mon, 29 May 2017 19:17:34 +0200

Hola,

No he estat a les opos, però de l'enunciat no em queda clar qué cal fer
quan el número de bitlles N no forma triangle equilàter exacte. Per
exemple, si donen 11 bitlles el triangle tindrà quatre files i sobra una
bitlla.

Sembla que no veig clara alguna cosa, perquè altres anys han caigut
algoritmes realment durs, i aquest problema em sembla trivial. Potser es
pot fer servir la formula de la suma aritmètica N = 1 + 2 + 3 + 4 + ...
+ F = F*(F+1)/2 , on F és el número de files i N el número de bitlles.
Cal trobar F i per això es pot utilitzar la fòrmula de les eqüacions de
segon grau:

F² + F - 2N = 0 -> F = -1/2 +- sqrt(1 + 8N)/2

I si a algú no li agraden les mates amb un únic bucle de dos
instruccions també es troba F. Quelcom semblant a:

F = 0;
i = 1;
while (i < N) {
  N = N - i;
  i++;
  F++
}
printf("%d files i sobren %d bitlles\n", F, N);

Em sembla realment extrany. En què m'estic equivocant? Aquest exercici
està en el meu dossier d'exercicis de programació senzills per a alumnes
de 1er ASIX.





El 29/05/17 a las 15:33, ESTER MARSAL ROCA escribió:

Hola,

Aquí hi ha l'exercici de l'opció B de la part A del cos 507. És un
redactat aproximat del què recordo:

Les bitlles en un bowling es col·loquen en forma de triangle
equilàter, a cada fila hi ha una bitlla més que la fila anterior

 

Entrada

C N N...

On C és la quantitat de casos i N la quantitat de bitlles que cal
col·locar com a mínim

 

Sortida

Quantitat de files que tindrà el triangle, per cada cas

 

La C és un valor entre 0 i 10.000 sense incloure el 0,

La N és un valor entre 0 i 10^9 sense incloure el 0.






-- 
Àlex Castán Salinas
Institut Ausiàs March
avinguda d’Esplugues, 38-42, 08034 Barcelona
telèfon. 93-203-33-32 (tardes) , 689-46-56-36

Other related posts: