zoukankan      html  css  js  c++  java
  • hdu 1715 大菲波数

    #include<stdio.h>
    #include<vector>
    using namespace std;
    #define N 1010
    vector<int>a[N];
    int fb()
    {
        int i,j,k;
        int jw;
        a[1].push_back(1);
        a[2].push_back(1);
        for(i=3;i<N;i++)
        {
            jw=0;
            for(j=0,k=0;k<a[i-2].size();j++,k++)
            {
                //a[i][j]+=jw;
                int t=a[i-1][j]+a[i-2][k]+jw;
                jw=t/10;
                if(jw)
                a[i].push_back(t%10);
                else
                a[i].push_back(t);
            }
            for(;j<a[i-1].size();j++)
            {
                int t=a[i-1][j]+jw;
                jw=t/10;
                if(jw)
                a[i].push_back(t%10);
                else
                a[i].push_back(t);
            }
            if(jw)
            {
                a[i].push_back(jw);
            }
        }
        return 0;
    }
    int main()
    {
        int _case,n;
        fb();
        scanf("%d",&_case);
        while(_case--)
        {
            scanf("%d",&n);
            for(int i=a[n].size()-1;i>=0;i--)
            printf("%d",a[n][i]);
            printf("\n");
        }
        return 0;
    }

    学习:

          STL中vector使用下标访问数组元素是,只能访问到vector动态申请过的空间:

          使用char型数组时,注意‘\0’的ASCⅡ码为0,即数组的读入结束符;

    错误代码:

    #include<stdio.h>
    #include<string.h>
    #define N 50
    char a[N][1000];
    int fb()
    {
        int i,j,k;
        int jw;
        a[1][0]=1;
        a[2][0]=1;
        for(i=3;i<N;i++)
        {
            jw=0;
            for(j=0,k=0;k<strlen(a[i-2]);j++,k++)
            {
                //a[i][j]+=jw;
                a[i][j]=a[i-1][j]+a[i-2][k]+jw;
                jw=a[i][j]/10;
                if(jw)
                {
                    a[i][j]%=10;
                }
                printf("%d ",a[i][j]);
            }
            for(;j<strlen(a[i-1]);j++)
            {
                a[i][j]=a[i-1][j]+jw;
                jw=a[i][j]/10;
                if(jw)
                {
                    a[i][j]%=10;
                }
            }
            if(jw)
            {
                a[i][j++]=jw;
            }
            for(int k=strlen(a[i])-1;k>=0;k--)
            printf("#%d",a[i][k]);
            printf("\n");
        }
        return 0;
    }
    int main()
    {
        int _case,n;
        fb();
        scanf("%d",&_case);
        while(_case--)
        {
            scanf("%d",&n);
            for(int i=strlen(a[n])-1;i>=0;i--)
            printf("%d",a[n][i]);
            printf("\n");
        }
        return 0;
    }
    View Code
  • 相关阅读:
    python爬虫requests json与字典对象互相转换
    python爬虫requests的使用
    Django 使用celery任务队列的配置
    Django实现发邮件
    leetcode算法:Two Sum II
    Python中使用hashlib进行加密的简单使用
    leetcode算法: Average of Levels in Binary Tree
    Django中自定义过滤器的使用
    linux下git常用命令
    cocos2d-x 父节点和子节点执行不同动作
  • 原文地址:https://www.cnblogs.com/XDJjy/p/3107459.html
Copyright © 2011-2022 走看看