👤

se citeste de la tastatura un nr n cu maxim cinci cifre. afisati cel mai apropiat nr mai mic dect n care are aceeasi suma a cifrelor

Răspuns :

- Metoda cea lunga, merge doar ca dureaza mult.

#include <iostream> 
using namespace std;
int n,aux,i, sc,sc2;
int main()
{
    cin>>n;
    aux=n;
    while (aux)
    {
        sc=sc + aux%10;
        aux=aux/10;
    }
    for (i=n-1;i>0 && ! sc2;i--)
    {
        aux=i;
        while (aux)
        {
            sc2=sc2+aux%10;
            aux=aux/10;
        }
        if (sc2==sc)
            cout<<i;
        else
            sc2=0;
    }
    if (i==0 && sc2==0)
        cout<<"Nu exista.";

}
Metoda scurta, folosind matematica:
#include <iostream>
using namespace std;
int n;
int main()
{
    cin>>n;
    if (n<=9)
        cout<<"Nu exista.";
    else
        cout<<n-9;
}