Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<conio.h>
- #include<string>
- #include<vector>
- #include<fstream>
- int getDigit(int& nIndeks, int& nLiczba)
- {
- return std::stoi(std::to_string(nLiczba).substr(nIndeks,1));
- }
- int getNumOfDigits(int& nLiczba)
- {
- return std::to_string(nLiczba).length();
- }
- int removeDigit(int& nIndeks, int& nLiczba)
- {
- std::string sTemp = std::to_string(nLiczba);
- sTemp.erase(nIndeks, 1);
- return std::stoi(sTemp);
- }
- bool checkNumber(std::vector<int>& vnWyniki, int& nLiczba, int (*pfnGetDigit)(int&, int&), int (*pfnGetNumOfDigits)(int&), int (*pfnRemoveDigit)(int&, int&))
- {
- int nMianownik;
- double nUlamek, nTemp;
- vnWyniki.clear();
- for (unsigned i = 2; i <=100; i++)
- {
- nMianownik = nLiczba*i;
- for (int j = 0; j<pfnGetNumOfDigits(nLiczba); j++)
- {
- for (int k = 0; k<pfnGetNumOfDigits(nMianownik); k++)
- {
- if (pfnGetDigit(j, nLiczba) == pfnGetDigit(k, nMianownik))
- {
- if (pfnRemoveDigit(k, nMianownik)!=0)
- {
- nUlamek = (double)nLiczba/nMianownik;
- nTemp = (double)pfnRemoveDigit(j, nLiczba)/pfnRemoveDigit(k, nMianownik);
- if (nUlamek == nTemp)
- {
- vnWyniki.push_back(i);
- }
- }
- }
- }
- }
- }
- if (vnWyniki.size() > 0) return true;
- else return false;
- }
- int main()
- {
- std::fstream plik("Liczby.txt", std::ios::out);
- std::vector<int> vnWyniki;
- if (plik.is_open())
- {
- for (int i = 10; i <= 100; i++)
- {
- if (checkNumber(vnWyniki, i, getDigit, getNumOfDigits, removeDigit))
- {
- for (unsigned j = 0; j<vnWyniki.size(); j++)
- {
- if (i%10 != 0 && (vnWyniki[j]*i)%10 != 0)
- {
- std::cout<<i<< "/" << i*vnWyniki[j]<<" - " << vnWyniki[j]*i<<"/"<<i<<std::endl;
- plik << i << "/" << i*vnWyniki[j]<<" - " << vnWyniki[j]*i<<"/"<<i<<std::endl;
- }
- }
- }
- }
- }
- else std::cout<<"Nie mozna otworzyc pliku (Liczby.txt)"<<std::endl;
- plik.close();
- _getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement