Pagini recente » Cod sursa (job #2463679) | Cod sursa (job #1754206) | Cod sursa (job #1242889) | Cod sursa (job #2419699) | Cod sursa (job #116421)
Cod sursa(job #116421)
#include <stdio.h>
int f1[1000], f2[1000], f3[1000];
int getCifra(int *a, int i){
if (i>a[0])
return 0;
else
return a[i];
}
void suma(int *a, int *b, int *c) {
int t = 0,max;
max = a[0];
if (max<b[0]) max=b[0];
for (int i=1;i<=max;i++) {
int aux = getCifra(a,i)+getCifra(b,i)+t;
c[i]=aux%10;
t=aux/10;
}
if (t==1) {
c[0]=max+1;
c[max+1]=1;
} else {
c[0]=max;
}
}
void atrib(int *a,int *b){
for (int i=0;i<=b[0];i++) {
a[i]=b[i];
}
}
int main(){
int n,i;
FILE *f = fopen("nunta.in","r");
fscanf(f,"%d",&n);
fclose(f);
FILE *g = fopen("nunta.out","w");
if (n<2) {
fprintf(g,"%d",1);
} else {
// long long f1=1,f2=1,f3;
f1[0]=1;f1[1]=1;
f2[0]=1;f2[1]=1;
for (i=1;i<=n-1;i++) {
/* f3 = f1+f2;
f1=f2;
f2=f3;*/
suma(f1,f2,f3);
atrib(f1,f2);
atrib(f2,f3);
/* long long f1=1,f2=1,f3;
for (i=1;i<=n-1;i++) {
f3 = f1+f2;
f1=f2;
f2=f3;*/
}
// fprintf(g,"%lld",f3);
for (i=f3[0];i>=1;i--){
fprintf(g,"%d",f3[i]);
}
}
fclose(g);
return 0;
}