Cerinta
Se citeste de la tastatura un numar natural N. Calculati numarul minim care se obtine prin eliminarea unei singure cifre din numarul initial.
Date de intrare
Se citeste de la tastatura numarul natural N.
Date de iesire
Se va afisa numarul minim dupa eliminarea unei cifre.
Restrictii si precizari
0 < N < 1,000,000,000
Exemplu
Date de intrare Date de iesire
5912 512
!!! FARA VECTORI
Răspunsuri la întrebare
Nota :
Aceasta NU este cea mai eficienta varianta dar este una dintre cele mai usoare de inteles.
ALGORITM C++ :
#include <iostream>
using namespace std;
int main(){
int n,inv=0,cifmax=0;
cin >> n;
//Retine numarul de zerouri de la finalul numarului
int nrzero = 0;
while (n % 10 == 0) {
n /= 10;
++nrzero;
}
//Construieste rasturnatul, cautand in acelasi timp cifra maxima
while (n) {
if (cifmax < n % 10) {
cifmax = n % 10;
}
inv = inv * 10 + n % 10;
n /= 10;
}
//Reconstruieste numarul,stergand prima aparitie a cifrei maxime
while (inv) {
if (cifmax != inv % 10) {
n = n * 10 + inv % 10;
}
else {
cifmax = -1;
}
inv /= 10;
}
//Adauga inapoi numarul de 0 de la finalul numarului
while (nrzero) {
n *= 10;
--nrzero;
}
cout << n;
}