Advertisement
ElfikCo

Szukaj Palindromu

Dec 18th, 2016
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.84 KB | None | 0 0
  1. // ConsoleApplication5.cpp : Defines the entry point for the console application.
  2. #include "stdafx.h"
  3. #include <iostream>
  4. #include <math.h>
  5. #include <algorithm>
  6. #include <vector>
  7. #include <string>
  8. #include <conio.h>
  9.  
  10.  
  11. using namespace std;
  12.  
  13. class zliczanie
  14. {
  15.  
  16.     bool czy_liczba = false;
  17.     bool czy_palindrom = false;
  18.     string buff, nbuff, i1npocz;
  19.     unsigned long long liczba, nliczba, kliczba;
  20.     long long lit = 0;
  21.     unsigned long long pocz, npocz;
  22. public:
  23.     bool lel = true;
  24.  
  25.     void wprowadzanie()
  26.     {
  27.         cout << endl;
  28.         buff.clear();
  29.         cin >> buff;
  30.         cout << endl;
  31.         for (size_t i = 0; i < buff.length(); i++)
  32.         {
  33.             if (buff[i] == '0' || buff[i] == '1' || buff[i] == '2' || buff[i] == '3' || buff[i] == '4' || buff[i] == '5' || buff[i] == '6' || buff[i] == '7' || buff[i] == '8' || buff[i] == '9')
  34.             {
  35.                 czy_liczba = true;
  36.             }
  37.             else
  38.             {
  39.                 czy_liczba = false;
  40.                 cin.clear();
  41.                 cout << "GIVE A NUMBER!" << endl;
  42.                 return wprowadzanie();
  43.             }
  44.         }
  45.     }
  46.     void sprawdzanie()
  47.     {
  48.         while (czy_palindrom == false)
  49.         {
  50.             if (lit == 0)
  51.             {
  52.  
  53.                 liczba = stoll(buff);
  54.                 const long long a = liczba;
  55.                 pocz = a;
  56.                 nbuff = buff;
  57.                 reverse(nbuff.begin(), nbuff.end());
  58.                 nliczba = stoll(nbuff);
  59.                 const long long b = nliczba;
  60.                 npocz = b;
  61.                 getchar();
  62.             }
  63.             if (nbuff == buff)
  64.             {
  65.                 czy_palindrom = true;
  66.                 lel = false;
  67.                 break;
  68.             }
  69.             else
  70.             {
  71.                 if (liczba + nliczba > ULLONG_MAX)
  72.                 {
  73.                     lel = true;
  74.                     cout << "liczba przekroczyla dlugosc LONG LONG. Podaj inna. " << endl;
  75.                     cin.clear();
  76.                     lit = 0;
  77.                     return wprowadzanie();
  78.                 }
  79.                 liczba += nliczba;
  80.                 lit++;
  81.                 buff = to_string(liczba);
  82.                 nbuff = buff;
  83.                 reverse(nbuff.begin(), nbuff.end());
  84.                 nliczba = stoull(nbuff);
  85.                 if (lit == 1)
  86.                 {
  87.                     i1npocz = nbuff;
  88.                 }
  89.                 return sprawdzanie();
  90.             }
  91.         }
  92.     }
  93.     void wynik()
  94.     {
  95.         if (czy_palindrom == true)
  96.         {
  97.             if (lit >= 2)
  98.             {
  99.                 cout << "Liczba " << pocz << " po " << lit << " iteracjach jest palindromem: " << liczba << endl << endl;
  100.                 cout << endl << "Obliczenia: " << endl << " " << pocz << endl << "+" << npocz << endl << "________________  1 iteracja" << endl << " " << pocz + npocz << endl << "+" << i1npocz << endl << "________________  2 iteracja" << endl << endl << " ..........." << endl << endl << "itd. az bedzie palindrom." << endl << endl;
  101.             }
  102.             else
  103.             {
  104.                 cout << "Liczba " << pocz << " po " << lit << " iteracjach jest palindromem: " << liczba << endl << endl;
  105.                 cout << endl << "Obliczenia: " << endl << " " << pocz << endl << "+" << npocz << endl << "________________" << endl << " " << pocz + npocz << endl << endl << " I jest palindrom." << endl << endl;
  106.             }
  107.         }
  108.     }
  109. };
  110.  
  111. int main()
  112. {
  113.     zliczanie a1;
  114.  
  115.     a1.wprowadzanie();
  116.     while (a1.lel == true)
  117.     {
  118.         a1.sprawdzanie();
  119.     }
  120.     a1.wynik();
  121.     return 0;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement