2620 LED显示屏

来源:互联网 发布:powershell 远程linux 编辑:程序博客网 时间:2024/04/28 06:21

题目描述

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

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

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

 

输入

 

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

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

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

输出

 

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

示例输入

1 2HELLO2 4Welcome to the world of ACM

示例输出

LLOHEto 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;}