|
|
back to board"Crash ACCESS_VIOLATION" Posted by GoGo 9 Jul 2001 20:14 this is my source #include <stdio.h> char x[2][500][30]; int n,cur=1,sec=0; void read_data() { scanf("%d",&n); } void init(char a[30],int val) { a[0]=0; while(val) { a[++a[0]]=val%10; val/=10; } } void eqal(char a[30],char b[30]) { int i; b[0]=a[0]; for(i=1;i<=b[0];i++) b[i]=a[i]; } void sum(char a[30],char b[30]) { int i,t=0; if(b[0]>a[0]) { for(i=a[0]+1;i<=b[0];i++) a[i]=0; a[0]=b[0]; } else { for(i=b[0]+1;i<=a[0];i++) b[i]=0; b[0]=a[0]; } for(i=1;i<=b[0];i++) { b[i]+=a[i]+t; t=b[i]/10; b[i]%=10; } if(t)b[++b[0]]=t; } void solve() { int i,k; init(x[0][0],1); init(x[0][1],1); for(i=2;i<=n;i++) init(x[0][i],0); for(k=2;k<n;k++) { for(i=0;i<=n;i++) if(i<k)eqal(x[sec][i],x[cur][i]); else { eqal(x[sec][i-k],x[cur][i]); sum(x[sec][i],x[cur][i]); } cur=!cur; sec=!sec; } } void afiseaza() { int i; for(i=x[sec][n][0];i>0;i--) printf("%d",x[sec][n][i]); } void main() { read_data(); solve(); afiseaza(); } I got "Crash ACCESS_VIOLATION" |
|
|