Informatică, întrebare adresată de ghitanestiutoru, 8 ani în urmă

Pate sa ma ajute cnv cu ex asta la info pls??
1.      Să se afișeze primele n numere cu cel puțin 5 cifre care, adunate cu inversele lor, duc la obținerea unui număr care are prima cifră egală cu ultima. Ex: pentru n=100 se va afișa 10000 10001 10002 10003 10004 10005 10006 10007 10008 10010 10011 10012 10013 10014 10015 10016 10017 10018 10020 10021 10022 10023 10024 10025 10026 10027 10028 10030 10031 10032 10033 10034 10035 10036 10037 10038 10040 10041 10042 10043 10044 10045 10046 10047 10048 10050 10051 10052 10053 10054 10055 10056 10057 10058 10060 10061 10062 10063 10064 10065 10066 10067 10068 10070 10071 10072 10073 10074 10075 10076 10077 10078 10080 10081 10082 10083 10084 10085 10086 10087 10088 10090 10091 10092 10093 10094 10095 10096 10097 10098 10100 10101 10102 10103 10104 10105 10106 10107 10108 10110  ​

Răspunsuri la întrebare

Răspuns de vlOd
0

Am incercat sa rezolv. Nu prea mi-a iesit, adica merge pentru cateva numere dupa care este gresit, poate ai scris gresit enuntul? Daca nu, uite aici, mai incearca si tu.

#include <iostream>

#include <string>

#include <vector>

using namespace std;

void scrie(string str)

{

cout << str;

}

void scrieLinie(string str)

{

cout << str + "\n";

}

int inverseazaNR(int nr)

{

if (nr < 0) { return -1; }

int nrInversat = 0;

int ultimaCifra;

while (nr != 0)

{

 ultimaCifra = nr % 10;

 nrInversat = (nrInversat * 10) + ultimaCifra;

 nr /= 10;

}

return nrInversat;

}

int main(int argc, char* argv[])

{

argc -= 1;

if (argc < 1)

{

 scrieLinie("ERORARE: Nu s-a specificat numarul de cifre!");

 return 1;

}

int nrDeCifre = stoi(argv[1]);

int nr = 10000;

for (int i=0; i < nrDeCifre; i++)

{

 int nrInversat = inverseazaNR(nr);

 int nrFinal = nr + nrInversat;

 int primaCifra = nrFinal;

 int ultimaCifra = nrFinal % 10;

 while (primaCifra >= 10)

  primaCifra /= 10;

 

 nr += i;

 if (primaCifra != ultimaCifra)

  continue;

 else

  scrieLinie(to_string(nrFinal));

}

return 0;

}

Alte întrebări interesante