关闭

2620 LED显示屏

537人阅读 评论(0) 收藏 举报
分类:

题目描述

在街上经常会见到那种滚动字幕的LED屏幕,其显示过程是这样的:每一秒钟文字会向左滚动 P 个字母。

例如:显示屏上的文字是“HELLO,每秒文字向左滚动 1 个字母的情况如下图所示:

现给出屏幕上的文字,以及滚动步长 P 和时间 T,请输出 T 秒后在屏幕上显示的文字。

 

输入

 

输入包含多组测试数据,对于每组测试数据:

输入的第一行包含两个正整数 PT(0 PT 100)

第二行为一字符串,即目前屏幕上显示的文字(字符串仅包含英文字母与空格,空格当作一个字母滚动,字符串长度不超过1000)。

输出

 

每组输出一行字符串,表示 T 后显示的文字(包含空格)

示例输入

1 2
HELLO
2 4
Welcome to the world of ACM

示例输出

LLOHE
to the world of ACMWelcome 

提示

 

第二组样例的Welcome 后有一个空格

来源

 “师创杯”山东理工大学第五届ACM程序设计竞赛

示例程序

 
#include <stdio.h>

int main()
{
    int p = 0,t = 0;
    int n = 0,i = 0;
    int kk = 0;
    char pr[1010] = {'\0'};
    char z[1010] = {'\0'};
    char *pp = z;
    
    //freopen ("1.txt","r",stdin);

    while (scanf ("%d %d",&p,&t) != EOF)
    {
        getchar();
        n = 0;
        kk = 0;
        gets (z);
        pp = z;
        while (*pp != '\0')
        {
            n++;
            pp++;
        }
        t *= p;
        t = t % n;
        i = n;

        //printf ("%d",n);
        //int k = 0;
        //for (k = 0;k < 8;k++)
        //printf ("(%d)[%c]",k,z[k]);

        while (i--)
        {
            if (t >= n)
                t = 0;
            //printf ("%d:",t);
            pr[kk] = z[t];
            kk++;
            t++;
        }

        pr[kk] = '\0';
        puts (pr);

    }

    return 0;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:155472次
    • 积分:3515
    • 等级:
    • 排名:第9350名
    • 原创:200篇
    • 转载:6篇
    • 译文:0篇
    • 评论:24条
    最新评论