Untitled

 avatar
unknown
plain_text
2 years ago
2.5 kB
7
Indexable
#include <iostream>
#include <string>
using namespace std;

// Задача 1
int counter(int n)
{
    int cou = 0;
    if (n == 0) cou++;
    while (n > 0)
    {
        n /= 10;
        cou++;
    }
    return cou;
}

// Задача 2
int perev(int n)
{
    int perevN = 0;
    int num;
    int qua = 1;
    int quaNum = counter(n);
    for (int i = 0; i < quaNum; i++)
    {
        num = n % 10;
        n /= 10;
        for (int j = i + 1; j < quaNum; j++) qua *= 10;
        perevN += num * qua;
        qua = 1;
    }
    return perevN;
}

// Задача 3
int min(int a, int b, int c, int d)
{
    int minNum = 0;
    if (a <= b && a <= c && a <= d) minNum = a;
    else if (b <= a && b <= c && b <= d) minNum = b;
    else if (c <= a && c <= b && c <= d) minNum = c;
    else if (d <= a && d <= c && d <= b) minNum = d;
    return minNum;
}

int max(int a, int b, int c, int d)
{
    int maxNum = 0;
    if (a >= b && a >= c && a >= d) maxNum = a;
    else if (b >= a && b >= c && b >= d) maxNum = b;
    else if (c >= a && c >= b && c >= d) maxNum = c;
    else if (d >= a && d >= c && d >= b) maxNum = d;
    return maxNum;
}

// Задача 4
int pow(int n, int stepen)
{
    for (int i = 1; i < stepen; i++)
    {
        n *= n;
    }
    return n;
}

// Задача 5
int vote(int v1, int v2, int v3)
{
    int votes[3] = { v1, v2, v3 };
    int cou0 = 0, cou1 = 0;
    for (int i = 0; i < 3; i++)
    {
        if (votes[i] == 0) cou0++;
        if (votes[i] == 1) cou1++;
    }
    if (cou0 > cou1) return 0;
    else return 1;
}

// Задача 6
int invert(int n)
{
    int counter = 0;
    int tmp = n;
    int maska = 1;
    while (tmp > 0)
    {
        tmp >>= 1;
        counter++;
    }
    for (int i = 0; i < counter; i++)
    {
        if ((n & maska) > 0)
        {
            n &= ~maska;
            maska <<= 1;
        }
        else
        {
            n |= maska;
            maska <<= 1;
        }
    }
    return n;
}

int main()
{
    int n;
    cin >> n;
    //int a, b, c, d;
    //cin >> a >> b >> c >> d;
    //int stepen;
    //cin >> stepen;

    //cout << counter(n) << endl;
    //cout << perev(n) << endl;
    //cout << min(a, b, c, d) << endl;
    //cout << max(a, b, c, d) << endl;
    //cout << pow(n, stepen) << endl;
    //int v1, v2, v3;
    //cin >> v1 >> v2 >> v3;
    //cout << vote(v1, v2, v3);
    cout << invert(n);
}
Editor is loading...