Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

C


Qdidactic » stiinta & tehnica » informatica » c
Sa se afiseze toate descompunerile unui numar s ca suma de n elemente distincte



Sa se afiseze toate descompunerile unui numar s ca suma de n elemente distincte




- aceasta este o varianta a problemei dinainte; puteti sesizati unde apare diferenta in rezolvare?


#include <stdio.h>

int a[10],s,n,contor=0;

void descompune(int s,int k)

else for(i=a[n-k]+1;i<s;i++)


void main(void)





Probleme cu solutie surprinzatoare


In rezolvarea fiecareia din problemele urmatoare este foarte usor de cazut in capcana solutionarii de genul la prima mina' sau brute-force-approach in limba engleza (abordare in forta bruta . Este cea mai des intilnita capcana pentru programatorii lipsiti de subtilitate, experienta sau cultura de specialitate. Este si aceasta o rezolvare, desigur, dar lipsa ei de eficienta si de eleganta este evidenta. Tocmai de aceea, consideram foarte utila prezentarea citorva exemple elocvente, impreuna cu solutiile lor. Unele dintre probleme au fost selectionate dintre problemele date la concursurile si olimpiadele scolare de programare .

Prin acest capitol nu urmarim doar insusirea unor cunostinte practice de programare ci, mai ales, aprofundarea capacitatii de analiza si proiectare a solutiilor. Aceasta presupune un salt calitativ in invatarea programarii si de aceea acest capitol devine cu adevarat util numai pentru acei programatori inteligenti si dornici de auto-perfectionare. Sau pentru cei care se pregatesc pentru participarea la concursurile si olimpiadele de informatica.

Solutiile oferite de noi sint, pentru fiecare problema, eficiente si '



elegante Acest fapt se datoreaza accentului pus pe aprofundarea si imbunatatirea primei analize a problemei.

Putem atunci spune, ca motto-ul acestui capitol este: 'Nu te multumi niciodata cu solutia la prima mina !'.


Sa se afiseze numarul cuburilor perfecte mai mici decit n.


Analiza problemei - elaborarea algoritmului:


Capcana problemei consta in tentativa de a parcurge printr-un ciclu for toate numerele de la 1 la n si de a contoriza cele care sint cuburi perfecte.

La o a noua privire, mai atenta, observam ca partea intreaga a radicalului de ordinul 3 din n ne ofera acel numar care ridicat la a 3-a este cel mai apropiat cub de n. Deci, partea intreagp a radicalului de ordinul 3 din n este egala chiar cu numarul cuburilor mai mici decit n.

(Este suficient sa calculam radical de ordinul 3 din n pentru a afla cite cuburi mai mici decit n exista.)


program cuburi_perfecte;

var n,i,nr_cub:word;

BEGIN

write('n=');readln(n);

nr_cub:=trunc(exp(1/3*ln(n)));

writeln('numarul cuburilor perfecte < ',n,' este = ', nr_cub);

readln;

END.




Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright