9269:Big String超级字符串

来源:互联网 发布:vb编辑器如何使用 编辑:程序博客网 时间:2024/05/22 08:27

总时间限制:
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
#include<bits/stdc++.h>//包含所有的c++头文件using namespace std;unsigned long long a[10000];//整形中无符号类型数组定义unsigned long long n;int main(){    string C = "1234567";//定义常数字符串    memset(a,0,sizeof(a));//调用函数初始化    a[0]=4;//记录A中4位字符    a[1]=3;//记录B中3位字符    for(int i=2;i<10000;i++)//给数组a[]赋值    a[i]=a[i-1]+a[i-2];//递推    while(cin>>n)    {    while(n>7)    {    int i=0;    while(a[i]<n)    i++;    n -=a[i-1];    }    cout<<C[n-1]<<endl;}return 0; } 
原创粉丝点击