1006. 换个格式输出整数

来源:互联网 发布:博彦科技面试题java 编辑:程序博客网 时间:2024/05/21 11:29

让我们用字母B来表示“百”、字母S表示“十”,用“12...n”来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数。例如234应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。

输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000)。

输出格式:每个测试用例的输出占一行,用规定的格式输出n。

#include <stdio.h>#include <stdlib.h>#include <string.h>void myPrint(char * a,int b);void Print1(char a);void Print2 (char a);void Print3 (char a);int main (){    int num,temp,i=0;    scanf("%d",&num);//get the num    char str[4];    temp=num;    sprintf(str,"%d",num);    int length=strlen(str);//the length of the num    myPrint(str,length);    system("pause");    return 0;    }    void myPrint(char * a,int b){     switch (b)     {            case 1:Print1(a[0]);break;            case 2:Print2(a[0]);Print1(a[1]);break;            case 3:Print3(a[0]);Print2(a[1]);Print1(a[2]);break;            }     printf("\n");     }     void Print1(char a){     switch (a)     {            case '1':printf("1");break;            case '2':printf("12");break;            case '3':printf("123");break;            case '4':printf("1234");break;            case '5':printf("12345");break;            case '6':printf("123456");break;            case '7':printf("1234567");break;            case '8':printf("12345678");break;            case '9':printf("123456789");break;            }     }void Print2 (char a){     for(int i=0;i<a-'0';i++)     printf("S");     }void Print3 (char a){     for(int i=0;i<a-'0';i++)     printf("B");     }

输入样例1:
234
输出样例1:
BBSSS1234
输入样例2:
23
输出样例2:
SS123
                                             
0 0
原创粉丝点击