zoukankan      html  css  js  c++  java
  • 1254 Problem V

    问题 V: 光棍的yy

    时间限制: 1 Sec  内存限制: 128 MB 提交: 42  解决: 22 [提交][状态][讨论版]

    题目描述

    yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结啊

    现在给你m个1,你可以把2个1组合成一个2,这样就不是光棍了,问这样的组合有多少种??

    例如(111  可以拆分为 111 12 21  有三种)

    输入

    第一行输入一个n表示有n个测试数据 以下n行,每行输入m个1 (1 <= n,m <= 200)

    输出

    输出这种组合种数,占一行

    样例输入

    3
    11
    111
    11111
    

    样例输出

    2
    3
    8

    这个题实际上就是求前200个斐波那契数列+大数


     1 #include <iostream>
     2 #include <string.h>
     3 using namespace std;
     4 
     5 char a[222];
     6 int tag;
     7 int f[222][1111],t;
     8 
     9 void fb()
    10 {
    11     int i,j;
    12     memset(f,0,sizeof(f));
    13     f[0][0]=f[1][0]=1;
    14     for(i=2;i<222;i++)
    15     {
    16         tag=0;
    17         for(j=0;j<=200;j++)
    18         {
    19             tag=f[i-1][j]+f[i-2][j]+tag;
    20             f[i][j]=tag%10;
    21             tag/=10;
    22         }
    23     }
    24 }
    25 
    26 int main()
    27 {
    28     int na,i,j;
    29     fb();
    30     while(cin>>t)
    31     {
    32         while(t--)
    33         {
    34             cin>>a;
    35             na=strlen(a);
    36             for(i=200;i>=0;i--)
    37             {
    38                 if(f[na][i]!=0)
    39                     break;
    40             }
    41             for(j=i;j>=0;j--)
    42             {
    43                 cout<<f[na][j];
    44             }
    45             cout<<endl;
    46         }
    47     }
    48     return 0;
    49 }
  • 相关阅读:
    课程引言作业一
    多态与异常处理动手动脑
    大道至简第七八章阅读笔记
    继承与接口动手动脑
    大道至简第六章阅读笔记
    数组课后作业
    第5章 Linux网络编程基础
    第六章 高级I/O函数
    第4章 TCP/IP通信案例:访问Internet上的Web服务器
    第3章 TCP协议详解
  • 原文地址:https://www.cnblogs.com/asuml/p/5673970.html
Copyright © 2011-2022 走看看