Cerință
Se dă un număr natural N. Pentru a fi demn de afișat, a doua cifră trebuie interschimbată cu penultima.
Date de intrare
Se citește un singur număr natural, N.
Date de ieșire
Se afișează numărul N, după ce este demn de această operație.
Restricții
9 < N < 1.000.000.000
Exemplu
Date de intrare Date de ieșire
123456 153426
cu acest if am considerat ca numerele ce au mai putin de 4 cifre le-am considerat nedemne...
Daca este de alta parere, ca numarul 234 este demn, atunci scrii
if (nrcif < 3) cout << "nu e demn";
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int N, nou=0, i, cif, nrcif, v[10]={0};
cin >> N;
nrcif=0;
while (N)
{
cif=N%10;
++nrcif;
v[nrcif]=cif;
N=N/10;
}
if (nrcif<4) cout << "nu e demn";
else
{
cif=v[2];
v[2]=v[nrcif-1];
v[nrcif-1]=cif;
for (i=nrcif; i>0; i--)
{
nou=nou*10+v[i];
}
cout << nou;
}
return 0;
}
Explicație:
Răspuns:
#include <stdio.h>
#include <stdlib.h>
int main() {
int numar = 0;
printf("Insereaza numarul: ");
scanf("%d", &numar);
int numarDeCifre = 0;
int copieNumar = numar;
while(copieNumar) {
numarDeCifre++;
copieNumar = copieNumar / 10;
}
int cifre[numarDeCifre - 1];
int cifra = 0;
for(int i = numarDeCifre - 1; numar; i--) {
cifra = numar % 10;
cifre[i] = cifra;
numar = numar / 10;
}
int temp;
int numarModificat = 0;
temp = cifre[1];
cifre[1] = cifre[numarDeCifre - 2];
cifre[numarDeCifre - 2] = temp;
for(int i = 0; i < numarDeCifre; i++) {
numarModificat = numarModificat * 10 + cifre[i];
}
printf("Numarul modificat este: %d", numarModificat);
return EXIT_SUCCESS;
}
Explicație:
Salut, inserezi un numar de la consola, extragi cifrele pe rand intr-un vector, inversezi numarul de la indexul 1 cu cel corespunzator penultimei cifre iar in final construiesti numarul inversand procesul folosit pt a-l descompune.