《ACM程序设计》书中题目Y-25

时间:2022-06-02 19:20:12

(欢迎阅读我的博客,如发现错误或有建议请评论留言,谢谢。)

题目要求:
输入一个数据n然后输入n组数字,用语言描述数字的组成,例如122344111由一个1两个2一个3两个4三个1组成,所以输出1122132431。

题目思路:

输入数据后对数据进行统计如果第i位与第i+1位相同,则统计数+1,如果与下一位不相同则输出统计数和第i位数字,然后统计数清零,在对后面的数据统计。

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n)
    {
        int i;
        for(i=n;i>0;i--)
        {
            char a[1000];
            int b=1,j;
            cin>>a;
            for(j=0;j<strlen(a);j++)
            {
                if(a[j]==a[j+1])
                b++;
                else {cout<<b<<a[j];b=1;}
                }
            cout<<endl;
            }
        }
    }