Advertisement
AdrianMadajewski

Untitled

Feb 12th, 2019
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <string>
  4. #include <fstream>
  5. #include <map>
  6.  
  7. bool wiecejZer(std::string liczba)
  8. {
  9.     std::map<char, int> map;
  10.     for (char a : liczba)
  11.         map[a]++;
  12.     return map['0'] > map['1'];
  13. }
  14.  
  15. bool modulo(std::string liczba, int mod)
  16. {
  17.     int len = liczba.length();
  18.  
  19.     switch (mod)
  20.     {
  21.     case 2:
  22.         if (liczba[len - 1] != '0')
  23.             return false;
  24.         break;
  25.     case 8:
  26.        
  27.         for(int i = 1; i <= 3; i++)
  28.             if(liczba[len - i] != '0')
  29.                 return false;
  30.         break;
  31.     }
  32.     return true;
  33. }
  34.  
  35. int minmax(std::string liczba, std::string porownanie)
  36. {
  37.     int len = liczba.length();
  38.     int plen = porownanie.length();
  39.        
  40.     if (len == plen)
  41.     {
  42.         for (int i = 0; i < len; i++)
  43.         {
  44.             if (liczba[i] > porownanie[i])
  45.                 return +1;
  46.  
  47.             if (liczba[i] < porownanie[i])
  48.                 return -1;
  49.         }
  50.     }
  51.     else if (len < plen)
  52.         return -1;
  53.     else
  54.         return +1;
  55. }
  56.  
  57.  
  58. int main()
  59. {
  60.     std::ifstream dane("liczby.txt");
  61.     int odp1 = 0;
  62.     int mod2 = 0;
  63.     int mod8 = 0;
  64.     std::string max;
  65.     std::string min;
  66.     int imin = 0;
  67.     int imax = 0;
  68.  
  69.     std::ofstream wynik("wynik4.txt");
  70.  
  71.     for (int i = 0; i < 1000; i++)
  72.     {
  73.         std::string liczba;
  74.         dane >> liczba;
  75.  
  76.         if (i == 0)
  77.             max = min = liczba;
  78.            
  79.         if (wiecejZer(liczba)) odp1++;
  80.         if (modulo(liczba, 2)) mod2++;
  81.         if (modulo(liczba, 8)) mod8++;
  82.  
  83.         if (minmax(liczba, max) == +1) { max = liczba; imax = i + 1; }
  84.         if (minmax(liczba, min) == -1) { min = liczba; imin = i + 1; }
  85.     }
  86.  
  87.     wynik << 4.1 << std::endl;
  88.     wynik << odp1 << std::endl;
  89.  
  90.     wynik << 4.2 << std::endl;
  91.     wynik << "mod2 - " << mod2 << std::endl;
  92.     wynik << "mod 8 - " << mod8 << std::endl;
  93.  
  94.     wynik << 4.3 << std::endl;
  95.     wynik << "max - " << imax << std::endl;
  96.     wynik << "min - " << imin;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement