PTA天梯赛L1-058 6翻了(c语言实现)

原题链接
这道题稍微有一点点灵活,乍一想还是有点想不到的。主要还是对6的个数进行计数,如果是6则计数有多少个6,如果不是6的话则要进行判断。

  1. 如果在此之前6的个数超过了3(>3)但是小于等于9那么要输出9
  2. 如果在此之前6的个数超过了9(>9)那么要输出27
  3. 如果在此之前6的个数小于等于3,那么就输出6的个数个6

最后一步是输出这个不是6的字符
如果6出现在字符串末尾,注意要对上述情况再做一次判断。
下面附上代码

#include 
#include 
int main(){
	char c[1001];
	gets(c);
	int i,num=0,j;
	for(i=0;i<strlen(c);i++){
		if(c[i]=='6'){
			num++;
		}else{
			if(num<=3){
				for(j=0;j<num;j++){
					printf("6");
				}
			}else if(num>3 && num<=9){
					printf("9");
			}else{
				printf("27");
			}
			num=0;
			printf("%c",c[i]);
		}
	}
	if(num>0){
		if(num<=3){
			for(j=0;j<num;j++){
				printf("6");
			}
		}else if(num>3 && num<=9){
				printf("9");
		}else{
			printf("27");
		}
	}
	return 0;
} 

你可能感兴趣的:(PTA天梯赛(c语言实现),字符串,c语言,算法)