问题:数字重复长度计算
题目描述
有一串数字,比如2234445240(最后的0表示这一串数字的结束)
输出最长的一段重复的次数。
比如第一个2连续重复了2次
3连续重复了1次
4连续重复了3次
5连续重复了1次
2连续重复了1次
4连续重复了1次
则最长的重复次数为数字4重复的3次。输出3,
输入
输入一串数字,以数字0结尾。
输出
输出最长重复的一段中,重复的次数
样例输入
2234445240
样例输出
3
1 #include<stdio.h> 2 #include<string.h> 3 int main(){ 4 char n=‘1‘; 5 char a[100]; 6 int b[10]; 7 int i=0,m=0,k=0; 8 while(n-48){ 9 scanf("%c",&n); 10 if(n!=48){ 11 a[i++]=n; 12 } 13 } 14 memset(b,0,sizeof(b)); 15 for(i=0;a[i]-48;i++){ 16 if(b[a[i]-48]>k&&b[a[i]-48]!=b[a[i-1]-48]){ 17 k++; 18 }else{ 19 k=0; 20 b[a[i]-48]++; 21 } 22 } 23 for(i=0;i<10;i++){ 24 if(b[i]!=0){ 25 printf("%d %d\n",i,b[i]); 26 } 27 if(b[i]>m){ 28 m=b[i]; 29 } 30 } 31 printf("%d",m); 32 return 0; 33 34 }