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 }