Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <fstream>
- using namespace std;
- bool Divedisableby2(string s);
- bool Divedisableby8(string s);
- int GetMin(vector<string> binaries);
- int GetMax(vector<string> binaries);
- bool W0N1(string binary);
- bool CzyWieksze(string a, string b);
- bool CzyMniejsze(string a, string b);
- int main()
- {
- vector<string> binaries;
- fstream f;
- f.open("C:\\Users\\progr_000\\Downloads\\Dane_PR2 (3)\\Dane_PR2\\liczby.txt");
- while (f) {
- string line;
- f >> line;
- if(line!="")
- binaries.push_back(line);
- }
- int count_W0N1 = 0, count_p2 = 0, count_p8=0;
- for (string s : binaries) {
- if (W0N1(s))
- count_W0N1++;
- if (Divedisableby2(s))
- count_p2++;
- if (Divedisableby8(s))
- count_p8++;
- }
- cout << "4.1 " << count_W0N1 << endl;
- cout << "4.2 " << "Przez 2: "<<count_p2<<" Przez 8: "<<count_p8 << endl;
- cout << "4.3 " << "MAX: "<<GetMax(binaries) << " MIN: "<< GetMin(binaries);
- }
- int GetMax(vector<string> binaries) {
- string biggest = binaries[0];
- int i_biggest=0;
- for (int i = 1; i < binaries.size(); i++) {
- if (binaries[i].size() > biggest.size()) {
- biggest = binaries[i];
- i_biggest = i;
- }
- else {
- if (binaries[i].size() == biggest.size() && CzyWieksze(binaries[i],biggest)) {
- biggest = binaries[i];
- i_biggest = i;
- }
- }
- }
- //+1 bo tablice sa numerowane od 0
- return i_biggest+1;
- }
- int GetMin(vector<string> binaries) {
- string smallest = binaries[0];
- int i_smallest = 0;
- for (int i = 1; i < binaries.size(); i++) {
- if (binaries[i].size() < smallest.size()) {
- smallest = binaries[i];
- i_smallest = i;
- }
- else {
- if (binaries[i].size() == smallest.size() && CzyMniejsze(binaries[i],smallest)) {
- smallest = binaries[i];
- i_smallest = i;
- }
- }
- }
- //+1 bo tablice sa numerowane od 0
- return i_smallest+1;
- }
- bool Divedisableby2(string s) {
- if (s[s.size() - 1] == '0')
- return true;
- else
- return false;
- }
- bool Divedisableby8(string s) {
- if (s[s.size() - 1] == '0' && s[s.size() - 2] == '0'&& s[s.size() - 3] == '0')
- return true;
- else
- return false;
- }
- bool W0N1(string binary) {
- int l_0 = 0;
- int l_1 = 0;
- for (char c : binary) {
- if (c == '1')
- l_1++;
- else
- l_0++;
- }
- return l_1 < l_0;
- }
- bool CzyWieksze(string a, string b) {
- for (int i = 0; i < a.length(); i++) {
- if (a[i] != b[i])
- return a[i] == '1';
- }
- }
- bool CzyMniejsze(string a, string b) {
- for (int i = 0; i < a.length(); i++) {
- if (a[i] != b[i])
- return a[i] != '1';
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment