#include#include int main(void) { //1.读取位数 char num[1000] = {0}; int n; scanf_s("%s", num, 1000); n = strlen(num); //printf("%d", n); //2.判断位数 if (n == 3) { int bai = num[0] - '0'; for (; bai > 0; bai--) { printf("B"); } int shi1 = num[1] - '0'; for (; shi1 > 0; shi1--) { printf("S"); } int ge1 = num[2] - '0'; int i = 1; for (; i <= ge1; i++) { printf("%d", i); } } if (n == 2) { int shi2 = num[0] - '0'; for (; shi2 > 0; shi2--) { printf("S"); } int ge2 = num[1] - '0'; int j = 1; for (; j <= ge2; j++) { printf("%d", j); } } if (n == 1) { int ge3 = num[0] - '0'; int k = ge3; for (; k <= ge3; k++) { printf("%d", k); } } return 0; }
第一次尝试用strlen函数来计算位数
但pat判了个部分正确——有一个测试点出错
不确定什么原因
#includeint main(void) { int num; int ge, shi, bai; scanf_s("%d", &num); ge = num % 10; num /= 10; int i = ge; shi = num % 10; num /= 10; bai = num % 10; for (; bai > 0; bai--) { printf("B"); } for (; shi > 0; shi--) { printf("S"); } for (i = 1; i <= ge; i++) { printf("%d", i); } return 0; }
第二次用回了原来的经典方案(或者说这么写其实更简洁)



