閱讀225 返回首頁    go 阿裏雲 go 技術社區[雲棲]


POJ2229 遞推

這題明顯遞推 但是找了好久才找出來 很明顯的是n為奇數的時候 n=n-1的偶數答案一樣

n為偶數的時候 答案為 上一個偶數是情況 +1 +1 還有n/2 的情況同一 *2 所以h[n]=h[n-2]+h[n/2]

#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int d[1000005];
int main()
{
    d[1]=1;
    d[2]=2;
    for(int i=3; i<=1000000; i++)
    {
        if(i%2)
            d[i]=d[i-1];
        else
            d[i]=d[i-2]+d[i/2];
        if(d[i]>1000000000)
            d[i]%=1000000000;
    }
    int n;
    while(~scanf("%d",&n))
        printf("%d\n",d[n]);
    return 0;
}


最後更新:2017-04-04 07:03:27

  上一篇:go 【最近麵試遇到的一些問題】線程安全-單例模式[轉]
  下一篇:go 【最近麵試遇到的一些問題】forward 和redirect的區別