Submission

Status:

--------------------

Subtask/Task Score:

0/100

Score: 0

User: oopoo123123zx

Problemset: Abacus

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-18 09:08:12

#include <iostream>
#include <array>
#include <string>

std::array<std::string, 10> numBun({
    "** - *****",
    "** -* ****",
    "** -** ***",
    "** -*** **",
    "** -**** *",
    "* *- *****",
    "* *-* ****",
    "* *-** ***",
    "* *-*** **",
    "* *-**** *"
});

int getDig(int num) {
    int dig = 0;

    do {
        dig++;
        num /= 10;
    } while(num>0);

    return dig;
}

int main () {
    int num, numDig;
    int abaLine = 10, abaCnt = 8;

    std::cin >> num;
    std::string numStr = std::to_string(num);
    numDig = getDig(num);

    for (int line = 0; line < abaLine; line++) {
        for (int dig = 0; dig < abaCnt - numDig; dig++) { std::cout << numBun[0][line]; }
        for (int dig = 0; dig < numDig; dig++) { std::cout << numBun[ numStr[dig] - '0' ][line]; }
        std::cout << '\n';
    }
    std::cout << std::endl;

    return 0;
}