CodeForces 363A - Soroban
来源:互联网 发布:smtp协议端口 编辑:程序博客网 时间:2024/06/06 08:36
You know that Japan is the country with almost the largest 'electronicdevices per person' ratio. So you might be quite surprised to find out that theprimary school in Japan teaches to count using a Soroban — an abacus developed in Japan. This phenomenon has itsreasons, of course, but we are not going to speak about them. Let's have a lookat the Soroban's construction.
Soroban consists of some number of rods, each rod contains five beads.We will assume that the rods are horizontal lines. One bead on each rod (theleftmost one) is divided from the others by a bar (the reckoning bar). Thissingle bead is called go-dama and four others are ichi-damas. Each rod is responsible for representing a single digit from 0 to 9.We can obtain the value of a digit by following simple algorithm:
· Set thevalue of a digit equal to 0.
· If thego-dama is shifted to the right, add 5.
· Add thenumber of ichi-damas shifted to the left.
Thus, the upper rod on the picture shows digit 0, the middle one showsdigit 2 and the lower one shows 7. We will consider the top rod to representthe last decimal digit of a number, so the picture shows number 720.
Write the program that prints the way Soroban shows the given number n.
Input
The first line contains a single integer n (0 ≤ n < 109).
Output
Print the description of the decimal digits of number n from the last one to thefirst one (as mentioned on the picture in the statement), one per line. Print the beads as large English letters 'O', rod piecesas character '-' and the reckoning bar as '|'. Print as many rods, as manydigits are in the decimal representation of number n without leading zeroes. We can assume that number 0 has no leadingzeroes.
Sample test(s)
input
2
output
O-|OO-OO
input
13
output
O-|OOO-O
O-|O-OOO
input
720
output
O-|-OOOO
O-|OO-OO
-O|OO-OO
解题思路:
模拟
代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;void output(int x){if (x<5){printf("O-");}elseprintf("-O");printf("|");x %= 5;int i;for (i = 0; i<x; i++)printf("O");printf("-");for (i = 0; i<4 - x; i++)printf("O");printf("\n");}int main(){int n;char s[15];while (scanf("%s", s) != EOF){int i, len = strlen(s);for (i = len - 1; i >= 0; i--)output(s[i] - '0');}return 0;}
- codeforces-363A. Soroban
- Codeforces 363A Soroban
- CodeForces 363A - Soroban
- codeforces 363A round211 div2 A.Soroban
- Codeforces 363A Soroban(算盘模拟)
- Codeforces 363A Soroban(算盘模拟)
- Codeforces 363A Soroban-算盘模拟
- Codeforces #211 (Div. 2) A. Soroban
- Codeforces #211 (Div. 2) A. Soroban
- A.Soroban
- A. Soroban
- A. Soroban----水题
- Codeforces Round #211 (Div. 2), problem: (A) Soroban,problem: (B) Fence,problem: (C)
- codeforces 363A
- CodeForces-a
- Codeforces 903A A
- Codeforces-Round-#363-Fix-a-Tree
- Codeforces Round #363 (Div. 2), problem: (A)
- Do not warn about base configuration if unnecessary
- HTTP协议详解
- 面试中如何谈自己做过的项目
- [HDU 1712] ACboy needs your help 分组背包
- C#知识点总结系列:1、C#中Hashtable、Dictionary详解以及写入和读取对比
- CodeForces 363A - Soroban
- hdu1576(乘法逆元)
- 玩转Android---UI篇---Menu(菜单)
- Spark源码阅读笔记之MemoryStore
- MongoDB学习笔记(二) 通过samus驱动实现基本数据操作
- [Leetcode 138] Copy List with Random Pointer
- oozie学习笔记
- 验证点是否在三角形内
- js选择器