⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 游程.txt

📁 一般的游程编码
💻 TXT
字号:
输入序列{1,0,0,0,0,1,1},输出为{11,04,12}.后面输出结果的含义是,"11"表示1的个数为1,"04"表示后面连续0的个数为4,"11"表示最后面出现连续1的次数为2次

 

#include<iostream>

#include <sstream>

#include <string>

using namespace std;

 

string itostring(int x)

{

       std::ostringstream o;

    if (o << x)

       {

              return o.str();// 把x转换成1位字符输出

       }

       return 0;

}

 

 

int strlen(char str[])

{

        int i,leng;

        i=0;

        while(str[i]!='\0')

        i=i+1;

        leng=i;

        return(leng);

 

}

 

void main()

{

       int m=0,Len,j,n,count0=0,count1=0,b[100]; 

       cout<<"请输入一些二进制数据:\n"; 

       char data[100]; 

       cin >>data; 

       Len=strlen(data);

       for(m=0;m<Len;m++)

       {

              if(data[m]=='1')

              {

                     for(;data[m]=='1';m++)

                     {

                            count1++;

                     }

                     cout<<"S1"<<itostring(count1);

                     count1=0;

                     m--;

              }

              

              else

              {

                     for(;data[m]=='0';m++)

                     {

                            count0++;

                     }

                     cout<<"S0"<<itostring(count0);

                     count0=0;

                     m--;

             }

       }

 

}

运行结果:

 

请输入一些二进制数据:

111100001110011

S14S04S13S02S12  Press any key to continue

 

注意:

我们考虑0、1序列中连续的1或0的个数超过 10个,如果超过会得出这样的结果:

请输入一些二进制数据:

1111100000000000011111111111100000

S15S012S112S05  Press any key to contin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -