有点颠的一个测试点,记录一下



测试点二,是看了一些AC代码才写出来的,至于原理我也不知道,就当多见识一点题目测试点的可能性吧
#include<iostream>
#include<cstring>
using namespace std;
int main() {
	string a;
	char b[10] = { 'S','B','Q','W','S','B','Q','Y' };
	char c[10] = { 'a','b','c','d','e','f','g','h','i','j' };
	char d[20];
	int index_d = 0, index_b = 0;
	cin >> a;
	int count = 0;
	//计算位数
	for (int i = 0; a[i] != '\0'; i++) {
		count++;
	}
	//处理最小个位数
	if (count == 1 && a[0] - '0' == 0) {
		cout << 'a';
		return 0;
	}
	//转换
	for (int i = count-1; i >= 0; i--) {
		int temp = (int)a[i] - '0';
		//最后一个零且不在最后一个时输出
		if (temp == 0) {
			if(i != count - 1 && a[i + 1] - '0' != 0)
				d[index_d++] = c[temp];
			//大于万位时,连续多零,要输出万的单位
			if (index_b == 3 && a[i - 1] - '0' == 0) {
				d[index_d++] = 'W';
			}
		}
		//正常数字情况
		else
			d[index_d++] = c[temp];
		//单位(有零时无单位)
		if (i != 0 && a[i-1]-'0' != 0) {
			d[index_d++] = b[index_b];
		}
		index_b++;
	}
	//逆序输出
	for (int i = index_d - 1; i >= 0; i--) {
		cout << d[i];
	}
	return 0;
}



![P8837 [传智杯 #3 决赛] 商店(贪心加双指针)](https://img-blog.csdnimg.cn/direct/e2544c0462e4481fbe899a3f96222e53.png#pic_center)














