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;}
提交结果
文章插图
提交结果
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- cda格式文件的打开方式 cda文件转换成mp3格式
- 电脑制作音频教程分享 电脑怎么录音频文件
- mp4视频格式错误的解决方法 qsv格式转换成mp4为什么花屏
- 一打印就显示文档被挂起的原因 打印机文件被挂起是什么问题
- ps把图片变为填充图案的技巧 ps图案填充怎么操作
- 删除ppt文件中的音频内容 如何删除ppt动画效果
- 手机备份共享文件夹的连接 电脑如何共享文件夹给手机
- pdf文件背景颜色改成白色的方法 pdf底色怎么改白色模式
- 华为添加桌面时间的操作 华为时间24小时制怎么设置到桌面
- caj文件转pdf的简单方法分享 cajviewer怎么转换成pdf格式