Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

Dau CORONA pls..in C++, FARA VECTORI/MATRICI/FOR, doar folosind while si if!!
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

123456

Date de ieșire

153426

Date de intrare

12345

Date de ieșire

14325

Răspunsuri la întrebare

Răspuns de stefanboiu
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int N,M,pc,dc,pu;

   cout << "N= "; cin >> N;

   if (N<10) cout << "NU";

   else {

       if (N<100) {

           dc=N%10; pu=N/10;

           M=dc*10+pu;

       }

       else {

          if (N<1000) M=N;

          else {

              pu=(N/10)%10;

              int aux=N, z=1;

              while (aux>100) {

                   aux=aux/10; z=z*10;

              }

              dc=aux%10;

              if (dc==pu) M=N;

              else {

                  pu=(N/10)%10;

                  int aux=N, z=1;

                  while (aux>100) {

                       aux=aux/10; z=z*10;

                  }

                  dc=aux%10; pc=aux/10;

                  M=pc*(z*10)+pu*z+N%z;

                  M=(M/100)*100+dc*10+M%10;

              }

          }

       }

       cout << M;

   }

   return 0;

}

Explicație:

Varibile ajutătoare:

pc - prima cifră

dc - a doua cifră

pu - penultima cifră

z - puterile lui 10

Alte întrebări interesante