Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pętla while/for wykonuje się tylko raz, zamiast n razy

Ostatnio zmodyfikowano 2021-09-19 13:57
Autor Wiadomość
ALO_King
Temat założony przez niniejszego użytkownika
Pętla while/for wykonuje się tylko raz, zamiast n razy
» 2021-09-18 21:01:15
C/C++
//Wejście
//Pierwszy wiersz danych zawiera liczbę całkowitą k (10 ≤ k ≤ 1 000 000) do zamiany na
//palindrom.
//Wyjście
//Program powinien wypisać w jedną liczbę całkowitą – najmniejszą możliwą liczbę nieujemną,
//którą należy dodać do danej liczby, aby otrzymać palindrom
//Program działa jedynie dla wartości która jest palindromem i zwraca 0 (np.: 151, 212, itd.)
//oraz dla wartości której brakuje 1 do bycia palindromem (zwraca 1, np.: 150, 211, 231)
//w przypadku innych liczb na ekranie nie wyświetla się nic, a program sprawdzający zadanie wyświetla komunikat o wczytaniu EOF.


#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int liczba_cyfr( int a )
{
   
if( a / 10 == 0 )
       
 return 1;
   
   
return 1 + liczba_cyfr( a / 10 );
}

int main()
{
   
int k, n, m, x, reszta, odwrocona = 0, odwrocona2 = 0;
   
cin >> k;
   
if( k >= 10 && k <= 1000000 )
   
{
       
n = k;
       
while( n != 0 )
       
{
           
reszta = n % 10;
           
odwrocona = odwrocona * 10 + reszta;
           
n /= 10;
       
}
       
if( k == odwrocona )
           
 cout << "0";
       
else
       
{
           
int i = 1;
           
while( i < 1000000 )
           
{
               
x = k + i;
               
m = k + i;
               
while( m != 0 )
               
{
                   
reszta = m % 10;
                   
odwrocona2 = odwrocona2 * 10 + reszta;
                   
m /= 10;
               
}
               
if( liczba_cyfr( x ) == liczba_cyfr( odwrocona2 ) )
               
{
                   
if( x == odwrocona2 )
                   
{
                       
cout << i;
                       
break;
                   
}
                   
else
                       
 i++;
                   
               
}
               
else
                   
 i++;
               
           
}
        }
    }
}
P-178968
pekfos
» 2021-09-19 12:31:16
Nie zerujesz odwrocona2 przed kolejną próbą.
P-178969
ALO_King
Temat założony przez niniejszego użytkownika
» 2021-09-19 13:57:53
Dzięki wielkie, kompletnie o tym zapomniałem
P-178970
« 1 »
  Strona 1 z 1