Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip> // 3.2131234 -> 3.21
- #include <cmath> // abs()
- using namespace std;
- void dublarePrimaCifra(int& n) {
- int cifre[10]; // un vector pentru a stoca cifrele numarului
- int numarCifre = 0;
- // descompunem numarul in cifre si le stocam in vector
- int copie = n;
- while (copie > 0) {
- cifre[numarCifre] = copie % 10;
- copie /= 10;
- numarCifre++;
- }
- // construim noul numar, inserand prima cifra (dublata) in fata numarului original
- int numarNou = 0;
- int putere = 1;
- for (int i = 0; i < numarCifre; ++i) {
- if (i == 0) { // pentru prima cifra, o inseram dublata
- numarNou += (cifre[i] * 2) * putere;
- putere *= 10;
- }
- numarNou += cifre[i] * putere; // inseram restul cifrelor
- putere *= 10;
- }
- n = numarNou;
- }
- void dublarePrimaCifra(int& n) {
- int copie = n; // facem o copie a numarului initial
- int cifre = 0;
- // determinam numarul de cifre
- while (copie > 0) {
- cifre++;
- copie /= 10;
- }
- int primaCifra = n / pow(10, cifre - 1); // extragem prima cifra
- int restulNumarului = n % (int)pow(10, cifre - 1); // extragem restul numarului
- // construim noul numar
- n = primaCifra * (int)pow(10, cifre) + primaCifra * (int)pow(10, cifre - 1) + restulNumarului;
- }
- int main() {
- int n = 45556;
- dublarePrimaCifra(n);
- cout << "Numarul obtinut este: " << n << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment