| andreeav1410 a întrebat:

Cum as putea scrie secventa din C++: x%10 (rezultatul este ultima cifra a numarului x) doar prin adunare si scadere?

25 răspunsuri:
| BoneShiver a răspuns:

Poate ma complic eu, dar cred ca ai putea numai folosind subprograme

| BoneShiver a răspuns:

Sigur ai voie sa folosesti DOAR adunarea si scaderea pentru a crea un echivalent al lui x%10?

| andreeav1410 explică (pentru BoneShiver):

Da, doar cu adunare si scadere, dar mi-am amintit prost cerinta. De fapt era x=x/10.

| BoneShiver a răspuns (pentru andreeav1410):

Si tocmai imi iesea cu % fmm rolling on the floor
Ma gandesc si iti scriu

| Mayar a răspuns (pentru andreeav1410):

Nu inteleg... ce fel de numere poti sa ai? ce fel de rezultate poti avea?
Daca x e 55, atunci 55/10 da 5, 5 si nu poti obtine 5, 5 doar prin scaderi si adunari

| BoneShiver a răspuns (pentru Mayar):

El se refera la integer. Sau cel putin asa cred si sper. Daca vorbim de double, atunci avem nevoie de subprograme si sunt destul de sigur ca omu' inca nu a dat de ele (adica cerinta suna prea banal sa fie nevoie de subprograme)

| suntserios a răspuns (pentru Mayar):

X/y nu e acelasi lucru cu x%y

| Mayar a răspuns (pentru suntserios):

Stiu! s-a corectat mai jos, in caz ca nu ai citit

| Mayar a răspuns (pentru BoneShiver):

Ea a zis mai jos ca era de fapt x=x/10, cu impartire, nu cu aflarea restului

| BoneShiver a răspuns (pentru Mayar):

Si daca tot mi-a venit ideea, te deranjeaza ca le-am facut pe amandoua? laughing

| andreeav1410 explică (pentru Mayar):

In c++ este 55/10=5

| andreeav1410 explică (pentru BoneShiver):

Da, este de tip int. Mi-ai trimis doar pentru x%10? pentru celalalt nu gasesc. am facut tot ce insemna programarea predata in liceu. ar trebui sa fie usor dar n-am nici o idee acum pe moment

| Mayar a răspuns (pentru BoneShiver):

Am vazut ca ai tratat cea cu restul

| DeeaMarry a răspuns (pentru andreeav1410):

Il scazi pe 10 din 55 pana cand rezultatul obtinut e mai mic ca 0. Numeri de cate ori ai scazut si asta e rezultatul impartirii.

| Mayar a răspuns (pentru andreeav1410):

Daca le declari ca fiind intregi si nu float

| BoneShiver a răspuns (pentru andreeav1410):

In ce ti-am trimis, le face pe amandoua. Studiaza bine ce am scris si vei intelege.

Ideea e simpla, ca sa mearga cu x%10, la acel while pui +10. Ca sa mearga x/10, lasi asa cum este (+1).

Explicand ideea: Practic numeri de cate ori intra 10 in numar, apoi aduni 1 de atatea ori ca sa formezi numarul. Daca aduni 10 de atatea ori, o sa faci numarul fara ultima cifra(gen din 45 iese 40). Te-ai prins?

| BoneShiver a răspuns (pentru BoneShiver):

Si d-asta la ultimul cout ai ceva gen x1-x2 (sau cum am scris ca am uitat si sunt pe telefon acum) Pentru ca scazi de exemplu 45-40 si iese restul laughing

Btw: incearca sa te joci cu programele (asta ca sfat) daca doar inveti ce ti se da si faci chestii asemenea, nu o sa ajungi programator laughing Trebuie sa gandesti chestii noi, sa incerci, sa experimentezi.

De exemplu aveam un obicei sa fac cautare binara cu schimbari de limita superioara / inferioara +1+2+3 ca sa vad cand e mai eficient din pdv al timpului de cautare. La asta ma refer. Joaca-te cu codul, cauta chestii noi, idei noi de facut ca sa prinzi fluxul

| BoneShiver a răspuns (pentru Mayar):

Mai uite-te odata. ambele probleme sunt abordate acolo, doar ca while-ul si cout-ul din final difera.
Pentru x%10 pui la while +10 (nu +1) si afisezi DOAR x1-x2 (sau cum scrisesem)
Pentru x/10, pui la while +1 (cum deja si este) si afisezi numarul format.

Capisci?

| andreeav1410 explică (pentru BoneShiver):

Da, am inteles! Multumesc mult pentru ajutor kiss

| Mayar a răspuns (pentru BoneShiver):

Poate ca o fi scris programul pe site.ul spre care ai dat linkul. eu ma refeream la ce ia scris aici. sau nu te lasa TPU sa scrii aici programe?

| BoneShiver a răspuns (pentru Mayar):

Eu nu inteleg care e problema ta :I
Pe site, este scris un cod facut 100% de mine, care cuprinde atat cerinta tipului cat si cerinta initiala.

Si da, da aici pe TPU, nu poti scrie cod, deoarece interactioneaza cu javaScript-ul lor

| Mayar a răspuns (pentru BoneShiver):

Ok. felicitari. eu nu am nicio problema cu tine atata timp cat nici tu nu ai cu mine

| BoneShiver a răspuns:

Si na ca in linkul de mai sus ti-am facut si pentru x%10 rolling on the floor

| BoneShiver a răspuns (pentru BoneShiver):

Pardon, ca sa fie viabil pentru x%10, trebuie sa pui la ultimul while x2=x2+10, nu x2+1 (scuze)