Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
已经错了37的飘过,求打救。#include <iostream> #include <stdio.h> using namespace std; int key[205]; //存储钥匙 int count[205]; //计算循环次数 int count1[205]; //在K次机密后的循环次数 char info[210]; char transfer[210]; int main() { int number; int times; int i; while(scanf("%d",&number)!=EOF && number ) { for ( i = 0; i < number; ++i ) cin >> key[i]; for ( i = 0; i < number; ++i ) { if ( key[i] == i+1 ) count[i] = 1; else { count[i] = 2; int post = key[i]-1; while( key[post] != i+1 ) { count[i]++; post = key[post]-1; } } } //计算循环周期 while (scanf("%d%*c", ×) > 0 && times) { for ( i = 0; i < 205; i++ ) info[i]= ' '; gets(info); for(i=0;i<=number;i++) { if(info[i]==10 || info[i]==0) info[i]=' '; } for ( i = 0; i < number; ++i ) count1[i] = times % count[i]; for ( i = 0; i < number; ++i ) { char now = info[i]; int post = key[i] - 1; int ok = count1[i]; if ( ok == 0 ) transfer[i] = now; else { while( ok ) { transfer[post] = now; post = key[post] - 1; ok--; } } } // transfer[number]='\0'; printf("%s\n",transfer); } cout << endl; } //system("pause"); return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator