Informatică, întrebare adresată de SCatalin, 9 ani în urmă

Buna va rog as vrea sa ma ajutati cu acest exercitiu! L-am rezolvat dar nu stiu ce am facut gresit ca nu merge prea bine! Daca vreti scriu aici rezolvarea!
Exercitiul:
Se da un numar natural format din exact 3 cifre , prima cifra mai mare strict decat 1. Se cere sa se afiseze numarul obtinutprin micsorarea cu 1 a fiecarei cifre.

Răspunsuri la întrebare

Răspuns de Razzvy
1
#include <iostream>
using namespace std;

int main()
{
     int n, m = 0, p = 1;
     cin>>n;
     while(n)
          {
               m += (n % 10 - 1) * p;
               p *= 10;
               n /= 10;
          }
     cout<<m;
}

//Fara while

int main()
{
     int n, m = 0, cifra1, cifra2, cifra3;  //Vom memora fiecare cifra separat
     cin>>n;
     cifra3 = n % 10; // n % 10 returneaza ultima cifra a lui n (restul impartirii lui n la 10)
     n = n / 10;          // Eliminam ultima cifra a lui n (catul impartirii lui n la 10) si rapetam cele de mai sus
     cifra2 = n % 10;
     n /= 10;
     cifra1 = n % 10;
     
     //Scadem din fiecare cifra 1
     cifra1 = cifra1 - 1;
     cifra2 = cifra2 - 1;
     cifra3 = cifra3 - 1;
  
     //Compunem numarul m in baza 10, dupa cifrele aflate
     m = cifra1 * 100 + cifra2 * 10 + cifra3;

     cout<<m;
}

SCatalin: Ms omule! Dar poti sa-mi mai raspunzi la o singura intrebare ? Se poate rezolva acest exercitiu si fara instructiunea while ?
Razzvy: da
SCatalin: ok imi poti arata te rog eu sunt la inceputul capitolului c++ si nu stiu prea multe ! stiu decat sa declar variabile sa le dau o valoare sa afisez anumite mesaje si sa citesc anumite mesaje! PLS!
Razzvy: Ti-am scris mai explicit
SCatalin: ok multumesc mult
SCatalin: Vreau sa mentionez ca esti foarte bun in programare ! Cati ani ai?
Razzvy: 16
Răspuns de blindseeker90
1
Daca stii doar lucruri minimale despre C, cel mai simplu este doar sa scazi din numarul de 3 cifre pe 111. Astfel, scazi cu cate 1 fiecare cifra in parte.

#include <iostream>
using namespace std;

int main(){
int n,rez;
cout<<"Introduceti nr de 3 cifre:";
cin>>n;
rez=n-111;
cout<<"Rezultatul este: "<<rez;
return 0;
}

SCatalin: Multumesc mult versiunea ta e mai simpla va multumesc la amandoi!
Alte întrebări interesante