【PAT】B1084 外观数列(20 分)(纯C)
第一层循环,用来循环计算第几个元素
第二层用来计算当前元素的下一个
#include<stdio.h>
#include<string.h>
char aaa[100000] = { '\0' };
int main() {
	int N; scanf("%c %d",&aaa[0], &N);
	for (int i = 2; i <= N; i++) {//第几个元素
		char bbb[100000] = { '\0' };					//创建空字符串,保存生成的下一个元素
		int b = 0, num = 0;
		for (int j = 0; aaa[j] != '\0'; j++) {			//计算一个元素
			if (aaa[j] == aaa[j + 1]) {					//重复什么都不干,就计数
				num++;
			}
			else {												//不重复,该输出了
				bbb[b++] = aaa[j];
				if (num == 0)								//就一个
					bbb[b++] = '0' + 1;
				else {											//重复
					int temp = num + 1;
					num = 0;
					bbb[b++] = temp % 10 + '0';
				}
			}
		}
		strcpy(aaa, bbb);								//将生成的元素复制到原始字符串
	}
	printf("%s", aaa);
	return 0;
}
    大佬忽略,见笑。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号