ToniDev

Dublare prima cifra dintr-un numar (2 variante)

Oct 4th, 2023
1,068
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip> // 3.2131234 -> 3.21
  3. #include <cmath>  // abs()
  4.  
  5. using namespace std;
  6.  
  7.  
  8. void dublarePrimaCifra(int& n) {
  9.     int cifre[10];  // un vector pentru a stoca cifrele numarului
  10.     int numarCifre = 0;
  11.  
  12.     // descompunem numarul in cifre si le stocam in vector
  13.     int copie = n;
  14.     while (copie > 0) {
  15.         cifre[numarCifre] = copie % 10;
  16.         copie /= 10;
  17.         numarCifre++;
  18.     }
  19.  
  20.     // construim noul numar, inserand prima cifra (dublata) in fata numarului original
  21.     int numarNou = 0;
  22.     int putere = 1;
  23.     for (int i = 0; i < numarCifre; ++i) {
  24.         if (i == 0) {  // pentru prima cifra, o inseram dublata
  25.             numarNou += (cifre[i] * 2) * putere;
  26.             putere *= 10;
  27.         }
  28.         numarNou += cifre[i] * putere;  // inseram restul cifrelor
  29.         putere *= 10;
  30.     }
  31.  
  32.     n = numarNou;
  33. }
  34.  
  35. void dublarePrimaCifra(int& n) {
  36.     int copie = n; // facem o copie a numarului initial
  37.     int cifre = 0;
  38.  
  39.     // determinam numarul de cifre
  40.     while (copie > 0) {
  41.         cifre++;
  42.         copie /= 10;
  43.     }
  44.  
  45.     int primaCifra = n / pow(10, cifre - 1); // extragem prima cifra
  46.  
  47.     int restulNumarului = n % (int)pow(10, cifre - 1); // extragem restul numarului
  48.  
  49.     // construim noul numar
  50.     n = primaCifra * (int)pow(10, cifre) + primaCifra * (int)pow(10, cifre - 1) + restulNumarului;
  51. }
  52.  
  53. int main() {
  54.     int n = 45556;
  55.     dublarePrimaCifra(n);
  56.     cout << "Numarul obtinut este: " << n << endl;
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment