HzuWHF


私信TA

用户名:I7I08I9047

访问量:83376

签 名:

我RUN了

等  级
排  名 19
经  验 21269
参赛次数 13
文章发表 127
年  龄 3
在职情况 学生
学  校 贺州学院
专  业

  自我简介:

解题思路:
        

        注意一下变换次数为 0 的陷阱,题解操作注释就应该能说明白了,欢迎交流。

参考代码:

#include<bits/stdc++.h>
using namespace std;

char change[22][222];

char* look_say(char *num, int p) {
	int total = 0, i = 0;

	while (i < (int)strlen(num)) {
		char pos = num[i];
		/*  从当前字符计数   */
		while (pos == num[i]) {
			total++; i++;
		}

/*  把某个数字出现的次数Cat到结果上  */
		char temp[101];
		sprintf(temp, "%d", total);
		strcat(change[p], temp);

		/*    哪一个数字    */
		change[p][strlen(change[p])] = pos;

		total = 0;
	}
		/*  返回结果字符串  */
	return change[p];
}

int main() {
	char ch[101]; int i = 0, total;
	cin.getline(ch, 101);
	cin >> total;

	if (total == 0)
		puts(ch);

	else /*    变换次数    */
		for (char *temp = ch; i < total; i++)
			temp = look_say(temp, i);

	puts(change[total - 1]);
	return 0;
}


 

0.0分

2 人评分

  评论区

  • «
  • »