zoukankan      html  css  js  c++  java
  • 1sting

            You will be given a string which only contains ‘1’; You can merge two adjacent ‘1’ to be ‘2’, or leave the ‘1’ there. Surly, you may get many different results. For example, given 1111 , you can get 1111, 121, 112,211,22. Now, your work is to find the total number of result you can get.
    InputThe first line is a number n refers to the number of test cases. Then n lines follows, each line has a string made up of ‘1’ . The maximum length of the sequence is 200.
          OutputThe output contain n lines, each line output the number of result you can get .
    Sample Input

    3
    1
    11
    11111

    Sample Output

    1
    2
    8
    自己找规律可得为Fibonacci数列,但递归到已为大位数运算,long long __int64皆不可以,最好的办法为开数组
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    const int maxn=1005;
    int a[205][maxn];
    int main()
    {
      int n,i,j,count,T;
      for(i=0;i<=202;i++)
      {
        for(j=0;j<=1002;j++)
        {
          a[i][j]=0;
        }
      }
      a[1][0]=1;
      a[2][0]=2;
      for(i=3;i<=201;i++)
      {
        for(j=0;j<=1002;j++)
        {
          a[i][j]=a[i][j]+a[i-1][j]+a[i-2][j];
          if(a[i][j]>=10)
          {
            a[i][j]=a[i][j]-10;
            a[i][j+1]=a[i][j+1]+1;
          }
        }
      }
      cin>>T;
      while(T--)
      {
        char b[210];
        cin>>b;
        n=strlen(b);
        for(i=1002;i>=0;i--)
        {
          if(a[n][i]!=0)
          {
            count=i;
            break;
          }
        }
        for(i=count;i>=0;i--)
        {
          cout<<a[n][i];
        }
        cout<<endl;
      }
      return 0;
    }
  • 相关阅读:
    Console
    在IOS10系统中无法定位问题
    c# js 时间
    ConcurrentDictionary,ConcurrentStack,ConcurrentQueue
    转 控件拖动 未验证
    消息处理模拟点击
    C ProcessAsUser
    SessionChange
    installer
    mysql主从同步配置
  • 原文地址:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/6576319.html
Copyright © 2011-2022 走看看