• hdu 1297


    如果在f(n-1)的后面再加一个m,序列仍然是合法的,如果在f(n-2)后面再加一对ff,结果仍然是合法的,还有一种情况来着,就是如果结尾时mf的话,再在后面加f,结果会变成合法的,但是和f(n-2)后加ff重复,所以应该加ff.所以最后就是f(n)=f(n-1)+f(n-2)+f(n-4)了。

    #include "stdio.h"
    #include "string.h"

    char s[1002][400];

    int main()
    {
     int n;
     int i,j;
     int len=1,l,carry;
     int a;
     char b[400],t;
     memset(s,0,sizeof(s));
     s[0][0]='1';
     s[1][0]='1';
     s[2][0]='2';
     s[3][0]='4';

     for(i=4;i<=1000;i++)
     {
      carry=0;
      for(j=0;j<len;j++)
      {
       a=(s[i-1][j]==0?0:(s[i-1][j]-'0'))+(s[i-2][j]==0?0:(s[i-2][j]-'0'))+(s[i-4][j]==0?0:(s[i-4][j]-'0'))+carry;
       if(a>=10)
       {
        carry=a/10;
        s[i][j]=a%10+'0';
       }
       else
       {
        s[i][j]=a+'0';
        carry=0;
       }
      }
      if(carry)
       s[i][len++]=carry+'0';
     }


     while(scanf("%d",&n)==1)
     {
      l=strlen(s[n]);
      memset(b,0,sizeof(b));
      strcpy(b,s[n]);
      for(i=0;i<l/2;i++)
      {
       t=b[i];
       b[i]=b[l-i-1];
       b[l-i-1]=t;
      }
      printf("%s\n",b);
     }

     return 0;
    }

  • 相关阅读:
    webService 服务端搭建
    ss2h 整合
    Java绘制登陆验证码
    c3p0连接池
    DBCP连接池
    Cglib动态代理
    会话技术(Cookie,Session)
    Tomcat设置角色和密码
    转发和重定向
    JDK动态代理
  • 原文地址:https://www.cnblogs.com/Shirlies/p/2354987.html
Copyright © 2020-2023  润新知