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.malaban59.cn小編還為您精選了以下內容,希望對您有所幫助:- Scrivener設置自動備份為ZIP文件
- 新解決Windows 10中javac未識別為內部或外部命令的方法
- 如何在C語言中實現文件內容讀取
- Photoshop CC 2017軟件打開及新建文件
- JavaScript在HTML文件中的三個編寫位置
- 如何使用PS保存為帶有透明背景的圖片
- 為什么教不好自己的孩子 15歲女兒補課與父親發生爭執
- WIN7系統如何查看隱藏的文件和文件夾
- 20歲幾秒重度早迣還有得治嘛 為什么年輕人更容易早逝
- 為什么剛開始疼后來就很舒服?
