openjudge 9269:Big String超级字符串

9269:Big String超级字符串

总时间限制:
10000ms
单个测试点时间限制:
1000ms
内存限制:
131072kB
描述

fish在无数次oi竞赛的狱炼之后,悟出一个真理,往往越容易的题目,陷阱越深。由此,fish创作了这道题目。
fish首先给出两个短串A=’4567’ (4个字符), B=’123’(3个字符)。反复进行如下的操作得到一个长串C。
(1)C=B+A (例如:A=’4567’ ,B=’123’ C=B+A=’1234567’)
(2)A=B B=C (上述例子 A=’123’ B=’1234567’)
请你编程找出这个长串的第n个字符。

输入

第一行包含一个整数 n (1<=n<=10^9)

输出

仅一行,包含一个字符,表示这个长串的第n个字符。

样例输入
9
样例输出
2
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<cstring>
 5 #include<iostream>
 6 #include<cstdio>
 7 #include<cmath>
 8 #include<cstring>
 9 using namespace std;
10 int a,b,n;
11 char A[]="1234567";
12 int main() {
13     a=4,b=3;
14     scanf("%d",&n);
15     while(b<n)b=a+b,a=b-a;
16     while(n>7) {
17         if(n>b)n-=b;
18         a=b-a,b-=a;
19     }
20     printf("%c",A[n-1]);
21 }
原文地址:https://www.cnblogs.com/lyqlyq/p/6863506.html