1006 换个格式输出整数
#include<stdio.h> int main(){ int n; char a[100]={0}; scanf("%d",&n); int b=n/100; for(int i=0;i<b;i++){ a[i]='B'; } int s=n/10%10; for(int i=b;i<s+b;i++){ a[i]='S'; } int x=n%100%10; int j=1; for(int i=b+s;i<s+b+x;i++){ a[i]=j; j++; } for(int i=0;i<s+b;i++){ printf("%c",a[i]); } for(int i=s+b;i<s+b+x;i++){ printf("%d",a[i]); } }
自己瞎写的,没想到通过了~但是感觉很不规范,还请指正
下面是算法笔记中的写法,很规范~
#include<cstdio> int main(){ int n; scanf("%d",&n); int num=0,ans[5];//num存放n的位数 while(n!=0){ ans[num]=n%10; num++; n=n/10; } for(int i=num-1;i>=0;i--){ //从高位到低位枚举 if(i==2){ //如果是百位 for(int j=0;j<ans[i];j++){ printf("B"); } } else if(i==1){ for(int j=0;j<ans[i];j++){ printf("S"); } }else{ for(int j=1;j<=ans[i];j++){ printf("%d",j); } } } return 0; }
其中使用了ans[]数组记录每一位的数值,这个值也是后面字符输出的个数。
posted on 2020-11-03 19:25 CaRpe_DiEm2 阅读(40) 评论(0) 收藏 举报
浙公网安备 33010602011771号