题意:从给定的字符串转化找规律
思路:先求斐波那契数列,原字符,A-Z之间的字符依次往下数斐波那契数个位置,到Z就从A再重新循环
感想:真真没有看出规律来。。想到了是ASCLL值。。因为字符本身没有规律,,那也就是ASCLL码值了。。把每一个字符都打出来了,但是没有想到是斐波那契数。。。。尴尬。。。实在其他同学讨论的时候凑了一耳朵才知道的。。。
代码:
#include<iostream> #include<cstdio> #include<algorithm> #include<string.h> #include<queue> using namespace std; #define INF 0x3f3f3f3f; int t,n,a[1000005]; char ch[3000]; int main() { a[1]=1; a[2]=1; for(int i=3;i<=1000000;i++) { a[i]=(a[i-1]+a[i-2])%26; } int j; while(gets(ch)) { j=1; for(int i=0;i<strlen(ch);i++) { if(ch[i]>='A'&&ch[i]<='Z') { ch[i]=((ch[i]-'A'+a[j])%26+'A'); j++; } } printf("%s\n",ch); } }