Решение задачи Число с Acmp

С пояснением   Просмотров: 34


Скажем, что число в b-ой системе счисления описывает себя, если оно - b-значное, его первая цифра равна числу единиц в нем, вторая цифра равна числу двоек, и т.д., b-1-ая цифра равна числу цифр b-1, а последняя цифра равна числу нулей. Примером такого числа для b = 5 является 12002.

Задано число b. Требуется найти число в системе счисления по основанию b, которое описывает себя.

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int b;
    cin >> b;
    if(b == 1 || b == 2 || b == 3 || b == 6){
        cout << -1;
        return 0;
    }
    if(b == 4){
        cout << 2 << endl << 1 << endl << 0 << endl << 1;
        return 0;
    }
    if(b == 5){
        cout << 1 << endl << 2 << endl << 0 << endl << 0 << endl << 2;
        return 0;
    }
    vector<int> a(b + 1);
    a[1] = 2;
    a[2] = 1;
    a[b - 4] = 1;
    a[b] = b - 4;
    for(int i = 1; i < a.size(); ++i)
        cout << a[i] << endl;
    return 0;
}

         

Администратор Photo Автор: Администратор


При b = 1, 2, 3, 6 выводим -1
При b = 4: 2101
При b = 5: 12002
В остальных случаях:
a[1] = 2;
a[2] = 1;
a[b - 4] = 1;
a[b] = b - 4;
Оставшиеся элементы равны 0


Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться