Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <map>
- bool wiecejZer(std::string liczba)
- {
- std::map<char, int> map;
- for (char a : liczba)
- map[a]++;
- return map['0'] > map['1'];
- }
- bool modulo(std::string liczba, int mod)
- {
- int len = liczba.length();
- switch (mod)
- {
- case 2:
- if (liczba[len - 1] != '0')
- return false;
- break;
- case 8:
- for(int i = 1; i <= 3; i++)
- if(liczba[len - i] != '0')
- return false;
- break;
- }
- return true;
- }
- int minmax(std::string liczba, std::string porownanie)
- {
- int len = liczba.length();
- int plen = porownanie.length();
- if (len == plen)
- {
- for (int i = 0; i < len; i++)
- {
- if (liczba[i] > porownanie[i])
- return +1;
- if (liczba[i] < porownanie[i])
- return -1;
- }
- }
- else if (len < plen)
- return -1;
- else
- return +1;
- }
- int main()
- {
- std::ifstream dane("liczby.txt");
- int odp1 = 0;
- int mod2 = 0;
- int mod8 = 0;
- std::string max;
- std::string min;
- int imin = 0;
- int imax = 0;
- std::ofstream wynik("wynik4.txt");
- for (int i = 0; i < 1000; i++)
- {
- std::string liczba;
- dane >> liczba;
- if (i == 0)
- max = min = liczba;
- if (wiecejZer(liczba)) odp1++;
- if (modulo(liczba, 2)) mod2++;
- if (modulo(liczba, 8)) mod8++;
- if (minmax(liczba, max) == +1) { max = liczba; imax = i + 1; }
- if (minmax(liczba, min) == -1) { min = liczba; imin = i + 1; }
- }
- wynik << 4.1 << std::endl;
- wynik << odp1 << std::endl;
- wynik << 4.2 << std::endl;
- wynik << "mod2 - " << mod2 << std::endl;
- wynik << "mod 8 - " << mod8 << std::endl;
- wynik << 4.3 << std::endl;
- wynik << "max - " << imax << std::endl;
- wynik << "min - " << imin;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement