Submission
Status:
--------------------
Subtask/Task Score:
0/100
Score: 0
User: pxsit
Problemset: Abacus
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-13 12:38:20
#include <stdio.h>
#include <string.h>
int main() {
char num[9];
scanf("%s", num);
int len = strlen(num);
int digits[8] = {0};
// แปลงเป็นตัวเลข โดยหลักหน่วยอยู่ขวาสุด
for (int i = 0; i < len; i++) {
digits[7 - i] = num[len - 1 - i] - '0';
}
// พิมพ์เม็ดบน (2 แถว)
for (int row = 0; row < 3; row++) {
for (int i = 0; i < 8; i++) {
int d = digits[i];
if (d >= 5) {
// เม็ดบนเลื่อนลง
if (row == 1)
printf(" ");
else
printf("* ");
} else {
// เม็ดบนอยู่ข้างบน
if (row == 2)
printf(" ");
else
printf("* ");
}
}
printf("\n");
}
// เว้นบรรทัดว่างก่อนเส้นแกนกลาง
// printf(" \n");
printf("---------------\n");
// เม็ดล่าง 5 แถว
for (int row = 0; row < 6; row++) {
for (int i = 0; i < 8; i++) {
int d = digits[i];
int lowerBeads = (d >= 5) ? d - 5 : d;
if (row == lowerBeads)
printf(" ");
else
printf("* ");
}
printf("\n");
}
return 0;
}