ainer">PAT乙级-1006 换个格式输出整数让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数 。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4 。
输入格式:【文件后缀为pat打开方式 pat格式怎么转换】每个测试输入包含 1 个测试用例,给出正整数 n(<1000) 。
输出格式:每个测试用例的输出占一行,用规定的格式输出 n 。
输入样例 1:234
输出样例 1:BBSSS1234
输入样例 2:23
输出样例 2:SS123
代码
#include <stdio.h>#include <string.h>/** *输出百、十、个 *w 表示位,0 个位,1 十位,2百位 *gs表示个数 * */void printBSG(int w, int gs){//0不用,S十位,B个位char c[3] = "0SB";if (w == 0){//个位的输出方案for (int i = 1; i <= gs; i++){printf("%d", i);}}else if (w > 0){//百位和十位的输出方案for (int i = 0; i < gs; i++){printf("%c", c[w]);}}}int main(){//读入4个数字,小于1000,最大999char num[4];scanf("%s", num);/*** 方法一:**///如果个数为1位,则直接按照个位的输出方案,输出n到0的数字//num[0] - '0' 将char转为int的方法if (strlen(num) == 1){printBSG(0, num[0] - '0');}//2位数,则先输出十位,再输出个位else if (strlen(num) == 2){printBSG(1, num[0] - '0');printBSG(0, num[1] - '0');}//3位数,则分别输出百位,再输出十位,再输出个位else if (strlen(num) == 3){printBSG(2, num[0] - '0');printBSG(1, num[1] - '0');printBSG(0, num[2] - '0');}/*** 方法二:* 如果位数更多,则可以使用循环,调用printBSG函数**//*//最大的下边索引int maxIndex = strlen(num) - 1;for (int i = maxIndex; i >= 0; i--){int index = maxIndex - i;printBSG(i, num[index] - '0');}*/return 0;}
提交结果
![文件后缀为pat打开方式 pat格式怎么转换](http://img.sichuanlong.com/231109/0409122258-0.png)
文章插图
提交结果
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- Scrivener设置自动备份为ZIP文件
- 新解决Windows 10中javac未识别为内部或外部命令的方法
- 如何在C语言中实现文件内容读取
- Photoshop CC 2017软件打开及新建文件
- JavaScript在HTML文件中的三个编写位置
- 如何使用PS保存为带有透明背景的图片
- 为什么教不好自己的孩子 15岁女儿补课与父亲发生争执
- WIN7系统如何查看隐藏的文件和文件夹
- 20岁几秒重度早迣还有得治嘛 为什么年轻人更容易早逝
- 为什么刚开始疼后来就很舒服?