首页 > 学院 > 开发设计 > 正文

poj1026

2019-11-11 02:49:57
字体:
来源:转载
供稿:网友

题目大意:

Bob和Alice开始用一种崭新的编码方案。他们选择n个大于0小于等于n的序列a1 ; …; an。他们按照下列规则编码。消息在序列下马书写,所以字符和序列中的数字对齐,消息中的位置i的字符编码成位置ai的字符,整个过程迭代k次。如果消息长度小于n,后面用空格填补。 输入序列和消息,输出编码后的消息

解题思路:

模拟题,顺着来就可以了

代码如下:

#include<stdio.h>#include<string.h>#include<stdlib.h>int main(){ int n,i,k,x,m,t; int num[300]; char ch[300]; char re[300]; while(scanf("%d",&n)!=EOF&&n) { for(i=0;i<n;i++) { scanf("%d",&num[i]); num[i]--; } while(scanf("%d",&k)!=EOF&&k) { getchar(); gets(ch); if(strlen(ch)<n) { for(i=strlen(ch);i<n;i++) { ch[i]=' '; } } for(i=0;i<n;i++) { m=1; t=num[i]; while(i!=t) { t=num[t]; m++; } x=k%m;t=i; while(x) { t=num[t]; x--; } re[t]=ch[i]; } for(i=0;i<n;i++) { PRintf("%c",re[i]); } printf("/n"); } printf("/n"); } return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表