| Zumm a întrebat:

Sa se afiseze toate numerele formate din cinci cifre, numere care au suma cifrelor pare mai mare decat 5. Va rog frumos sa ma ajutati, daca se pricepe cineva. Ma intereseaza mai mult partea a doua a problemei. Multumesc anticipat happy! [ Ps : problema este la informatica, si imi trebuie rezolvarea in C++ ]

Răspuns Câştigător
| didiDia a răspuns:

asta scrii intr-un for pentru nr=10000 si nr mai mic ca 100000; nr se incrementeaza cu 1 la fiecare pas, faci asa: 1. afli cifrele numarului; 2. calculezi suma cifrelor numarului 3. compari suma cifrelor cu 5 si daca suma este mai mare ca 5, afisezi numarul.
La 1. faci asa:
declari o variabila auxiliara in care initial stochezi valoarea numarului tau si declari un tablou(vector-array) in care vei retine cifrele numarului. Apoi pui un while(auxiliar diferit de 0) in care executi instructiunile: a) depune in tablou[contor incrementat cu 1] valoarea restului impartirii lui auxiliar la 10 b)depune in auxiliar valoarea catului impartirii lui auxiliar la 10. Restul impartirii lui auxiliar la 10 iti va da la fiecare pas cate o cifra a numarului(pornind de la ultima cifra spre prima; ex. pentru nr=723 iti va da mai intai pe 3, apoi pe 2, apoi pe 7 si stochezi valorile 3, 2 si 7 intr-un array de intregi ca apoi sa poti face suma acestor valori si sa o compari cu 5). Suma o afli luand o variabila suma=0(initial) iar apoi faci un for contor=0; contor mai mic ca 5; contor incrementat cu 1 in care adaugi la fiecare pas in suma valoarea lui tablou[contor] in cazul in care tablou[contor] se imparte exact la 2(adica aduni la suma doar cifrele pare)( asta se scrie cam ceva de genul daca restul impartirii lui tablou[contor] la 2 este zero, suma=suma+tablou[contor]- pentru aflarea restului pui semnul de procent). Dupa ce ai iesit din for, compari suma cu 5 intr-o instructiune if si scrii ca daca suma mai mare ca 5, sa se afiseze numarul tau. Abia dupa afisarea numarului poti inchide acolada de la primul for(primul for fiind cel pe care l-am scris prima data, adica for nr=10000; nr mai mic 100000; nr incrementat cu 1 ). Spor la scris codul!(sper sa te ajute ceva indicatiile mele).

9 răspunsuri:
| didiDia a răspuns:

M-am gandit eu de la inceput ca iti trebuie la informatica. Nu-ti voi scrie codul(iti imaginezi asta), dar iti pot da indicatii amanuntite astfel incat sa fii tu in stare sa scrii codul. Fii atent. Numerele formate din 5 cifre sunt numerele cuprinse intre 10000 si 100000(fara a-l include si pe 100000). Atunci, pentru toate numerele de la 10000 pana la 100000(dar fara a-l include pe 100000; asta scrii intr-un for (nr=10000; nr

| didiDia a răspuns:

Nu mi-a permis TPU sa-ti scriu instructiunile for, while, if cu semne de mai mic, semnul de incrementare. Sper sa intelegi si asa.

| didiDia a răspuns:

Poti sa renunti la array/tablou (daca zici ca nu ai facut) si sa pui doar asa: daca restul impartii lui auxiliar la 10 se divide cu doi, atunci suma=suma+(restul impartirii lui auxiliar la 10).(suma este initial zero). Ce instructiuni repetitive stii? Instructiunile repetitite in C++ sunt:for, while si do while. For am inteles ca nu stii. While si do while stii?

| corolav a răspuns:

Păi, o dată că toate numerele de cinci cifre sînt 89.999. Cine crezi că nu are ce face decît să scrie 89.999 de numere?
Pentru a scrie un număr de cinci cifre ai nevoie de cel puţin 3 secunde. În atare situaţie, pentru a scrie 89.999 de numere de cîte cinci cifre ai nevoie de - foarte aproape exact -67 de ore.
Cumperi un caiet şi apoi...
Eu îţi propun să faci tu acest exerciţiu.
După ce ai terminat le alegi pe cele care corespund condiţiei cu numerele pare.
Cînd termini poate îmi comunici şi mie.
Dar dacă este o problemă de informatică, probabil că te specializezi în materie. Şi atunci, încearcă să faci un program care să-ţi rezolve această problemă. Nu te mai duci să cumperi caiet...

| corolav a răspuns:

Ţi-am spus eu că trebuie să faci un program. Iată că cineva ţi-a dat calea de pornire. Poate că aşa vei rezolva problema.

| master77 a răspuns:

Sunt multe:10006, 10008,10024, 10026,10028,10042,10044 etc.

| master77 a răspuns:

My badbig grin, n-am citit bine. Oricum, succesuri!big grin

| Zumm explică:

DidiDia : scuze dar nu ma lasa sa iti trimit mesaj. Am incercat sa il fac dar nu inteleg niste chestii, pe care nu le-am facut. adica nu am facut inca "for " sau cu vectorii. Oricum multumesc mult ca m-ai ajutat.In aceeasi idee mergeam si eu numai ca ori numi afisa nimica ori numai de 0 sau imi afisa multe numere dar nu indeplineau conditia ca suma sa fie mai mare ca 5. || Corolav : de la inceput era vorba de un program. eu de el aveam nevoie nu sa im zica cineva toate numerele. happy

| didiDia a răspuns (pentru Zumm):

Zumm, ti-am trimis mesajul cu id-ul meu de mess. Sper ca-l vei primi.