Cerință ( Nu imi iese partea din restrictii care spune: "Dacă în urma eliminării tuturor aparițiilor cifrei C nu mai rămâne nicio cifră, se va afișa -1") Ajutor, va rog! -- C++, doar cu if, else si while
Andrei, jucător amator de fotbal, are acasă o colecție de mingi. Fiecărei mingi i-a asociat o cifră. Într-o zi a așezat toate mingile într-o linie și și-a dat seama că cifrele de pe mingi formau un număr natural. Și-a mai dat seama și că toate mingile ce aveau scrise cifra C pe ele aveau o nuanță stridentă, așa că a hotărât să le elimine din șir. Care este noul număr format după eliminarea tuturor mingilor cărora le corespunde cifra C? Acum rămâne în sarcina ta să îți dai seama.
Date de intrare
Se citesc de pe aceași linie numărul N și cifra C, reprezentând numărul format cu cifrele mingilor, respectiv cifra ce apare pe mingile ce trebuie eliminate.
Date de ieșire
Se afișează numărul obținut în urma efectuării eliminărilor.
Restricții
N are cel puțin 1 cifră și maxim 8.
Dacă în urma eliminării tuturor aparițiilor cifrei C nu mai rămâne nicio cifră, se va afișa -1, iar dacă vor rămâne numai cifre nule se va afișa 0.
Dacă, în urma eliminărilor, noul număr începe cu unul sau mai mulți de 0 și există alte cifre nenule în noul număr, se vor elimina și acei 0 de la început.
Exemplu
Date de intrare Date de ieșire
1441 4. 11.
Răspunsuri la întrebare
Răspuns de
0
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int n,c,ok=1,ogl=0;
cin>>n>>c;
while (n!=0)
{
if (n%10!=c) ogl=ogl*10+n%10;
if (n%10!=c) ok=0;
n=n/10;
}
if (ogl==0 && ok==0) cout<<"0";
if (ogl==0 &&ok==1) cout<<"-1";
if (ogl!=0) {
while(ogl!=0)
{
n=n*10+ogl%10;
ogl=ogl/10;
}
cout<<n;
}
return 0;
}
Explicație:
drcompress:
0099 / 9 = 0
Alte întrebări interesante
Istorie,
8 ani în urmă
Alte limbi străine,
8 ani în urmă
Matematică,
8 ani în urmă
Informatică,
8 ani în urmă
Engleza,
8 ani în urmă