Content

给出一个数 \(n\),请你用算盘来表示 \(n\)。

这里的算盘和普通的算盘一样,只不过竖着摆放罢了。左边只有一个珠子,每个珠子表示 \(5\);右边有四个珠子,每个珠子表示 \(1\)。

请从低位到高位输出。

数据范围:\(1\leqslant n\leqslant 10^9\)。

Solution

这题不是很难,就是一道模拟题目。但是有个坑点,之后会讲。

先看一下怎么实现。我们知道,分离出每个数位的操作是这么打代码的:

while(p) {
//这里反正就是将 p % 10 存到什么东西里面去,具体情况的话要具体考虑
p /= 10;
}

我们可以发现,它正好就是从低位到高位操作的!

所以我们就可以考虑边分离数位边输出。

然后我们看如何输出每一位。

首先,如果这一位上的数 \(\geqslant 5\),那么我们就移下来左边的珠子,然后将这一位上的数减 \(5\),以备后面右边的珠子的处理。然后右边的珠子就可以直接按照这位上现在的数直接输出就好了。

现在讲坑点:不能输出多余的空格和换行!

Code

#include <cstdio>
using namespace std; int n; void print(int x) {
if(x >= 5) {printf("-O"); x -= 5;}
else printf("O-");
printf("|");
for(int i = 1; i <= x; ++i) printf("O");
printf("-");
for(int i = x + 1; i <= 4; ++i) printf("O");
} int main() {
scanf("%d", &n);
int p = n;
print(p % 10);
p /= 10;
while(p) {
puts("");
print(p % 10);
p /= 10;
}
}

最新文章

  1. 坑爹的私有API
  2. Python dir
  3. 第6章 DOM节点操作
  4. 无法将文件&quot; &quot;复制到“bin\*.*”。对路径“bin\*.*”的访问被拒绝。 解决方法
  5. python 使用总结
  6. 最短判断IE的办法
  7. Scala 深入浅出实战经典 第64讲:Scala中隐式对象代码实战详解
  8. QCustomplot使用分享(五) 布局
  9. angularJs中将字符串转换为HTML格式
  10. iOS性能调优之Analyze静态分析
  11. 使用DataContractJsonSerializer类将类型实例序列化为JSON字符串和反序列化为实例对象 分类: JSON 前端 2014-11-10 10:20 97人阅读 评论(1) 收藏
  12. 个人整理--Java编码规范
  13. continuous integration and continuous deployment in DW/BI
  14. Python学习笔记总结(三)类
  15. Pig Latin儿童黑话(java)
  16. Function 详解(一)
  17. The processing instruction target matching &amp;quot;[xX][mM][lL]&amp;quot; is not allowed.
  18. sublime3支持es6语法和vue彩色显示
  19. node的读写流
  20. 基于Echarts的股票K线图展示

热门文章

  1. Codeforces 611H - New Year and Forgotten Tree(二分图多重匹配)
  2. Python3编译安装ssl模块问题
  3. linux—查看所有的账号以及管理账号
  4. Excel-判断一个文本字符串中是否包含数字! 判断一个文本字符串是否是纯汉字!
  5. 关于vim复制剪贴粘贴命令的总结-转
  6. 06 windows安装Python+Pycharm+Scrapy环境
  7. 表格合并单元格【c#】
  8. C# CheckBoxList-DropDownList回显、筛选回显
  9. 我可以减肥失败,但我的 Docker 镜像一定要瘦身成功!
  10. accurate, accuse