卡了一下,原來可能有負整數= =
#include<stdio.h> #include<stdlib.h> #define FIBMAX 45 int fibdp[FIBMAX+1]; int main() { int inp;int T; fibdp[0]=1; fibdp[1]=2; fibdp[FIBMAX]=2147483647; for(int lx=2;lx<FIBMAX;lx++) fibdp[lx]=fibdp[lx-1]+fibdp[lx-2]; //for(int lx=0;lx<FIBMAX;lx++) // printf("%d\n",fibdp[lx]); scanf("%d",&T); for(int lT=1;lT<=T;lT++) { scanf("%d",&inp); int cnt=0; if(inp<=0) { printf("iyada~\n"); continue; } while(inp>0) { for(int i=0;i<FIBMAX;i++) { if((fibdp[i]<=inp)&&((i==FIBMAX-1)||(fibdp[i+1]>inp))) { cnt++; inp-=fibdp[i]; } } } printf("%d\n",cnt); } return 0; }
沒有留言:
張貼留言