Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ConsoleApplication5.cpp : Defines the entry point for the console application.
- #include "stdafx.h"
- #include <iostream>
- #include <math.h>
- #include <algorithm>
- #include <vector>
- #include <string>
- #include <conio.h>
- using namespace std;
- class zliczanie
- {
- bool czy_liczba = false;
- bool czy_palindrom = false;
- string buff, nbuff, i1npocz;
- unsigned long long liczba, nliczba, kliczba;
- long long lit = 0;
- unsigned long long pocz, npocz;
- public:
- bool lel = true;
- void wprowadzanie()
- {
- cout << endl;
- buff.clear();
- cin >> buff;
- cout << endl;
- for (size_t i = 0; i < buff.length(); i++)
- {
- 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')
- {
- czy_liczba = true;
- }
- else
- {
- czy_liczba = false;
- cin.clear();
- cout << "GIVE A NUMBER!" << endl;
- return wprowadzanie();
- }
- }
- }
- void sprawdzanie()
- {
- while (czy_palindrom == false)
- {
- if (lit == 0)
- {
- liczba = stoll(buff);
- const long long a = liczba;
- pocz = a;
- nbuff = buff;
- reverse(nbuff.begin(), nbuff.end());
- nliczba = stoll(nbuff);
- const long long b = nliczba;
- npocz = b;
- getchar();
- }
- if (nbuff == buff)
- {
- czy_palindrom = true;
- lel = false;
- break;
- }
- else
- {
- if (liczba + nliczba > ULLONG_MAX)
- {
- lel = true;
- cout << "liczba przekroczyla dlugosc LONG LONG. Podaj inna. " << endl;
- cin.clear();
- lit = 0;
- return wprowadzanie();
- }
- liczba += nliczba;
- lit++;
- buff = to_string(liczba);
- nbuff = buff;
- reverse(nbuff.begin(), nbuff.end());
- nliczba = stoull(nbuff);
- if (lit == 1)
- {
- i1npocz = nbuff;
- }
- return sprawdzanie();
- }
- }
- }
- void wynik()
- {
- if (czy_palindrom == true)
- {
- if (lit >= 2)
- {
- cout << "Liczba " << pocz << " po " << lit << " iteracjach jest palindromem: " << liczba << endl << endl;
- 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;
- }
- else
- {
- cout << "Liczba " << pocz << " po " << lit << " iteracjach jest palindromem: " << liczba << endl << endl;
- cout << endl << "Obliczenia: " << endl << " " << pocz << endl << "+" << npocz << endl << "________________" << endl << " " << pocz + npocz << endl << endl << " I jest palindrom." << endl << endl;
- }
- }
- }
- };
- int main()
- {
- zliczanie a1;
- a1.wprowadzanie();
- while (a1.lel == true)
- {
- a1.sprawdzanie();
- }
- a1.wynik();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement