Pagini recente » Cod sursa (job #811191) | Cod sursa (job #575386) | Cod sursa (job #96242) | Cod sursa (job #2984635) | Cod sursa (job #223170)
Cod sursa(job #223170)
#include <stdio.h>
int n;
void attrib_int(int *a, int nr)
{
if (!nr)
{
a[0]=1;
a[1]=0;
}
a[0]=0;
while (nr)
{
a[0]++;
a[a[0]]=nr%10;
nr/=10;
}
}
void attrib_large(int *a, int *b)
{
int i;
b[0]=a[0];
for (i=1; i<=a[0]; i++) b[i]=a[i];
}
void sum(int *a, int *b, int *c)
{
int t, i;
if (a[0]<b[0])
{
for (i=a[0]+1; i<=b[0]; i++) a[0]=0;
a[0]=b[0];
}
else if (b[0]<a[0])
{
for (i=b[0]+1; i<=a[0]; i++) b[0]=0;
b[0]=a[0];
}
t=0;
for (i=1; i<=a[0]; i++)
{
c[i]=a[i]+b[i]+t;
t=c[i]/10;
c[i]=c[i]%10;
}
c[0]=a[0];
if (t)
{
c[0]++;
c[c[0]]=t;
}
}
int main()
{
int a[10000], b[10000], c[10000], i;
freopen("nunta.in", "r", stdin);
freopen("nunta.out", "w", stdout);
scanf("%d\n", &n);
if (n==1 || n==2)
{
printf("%d\n", n);
return 0;
}
n-=2;
attrib_int(a, 1); //a=1;
attrib_int(b, 2); //b=2;
for (;n;n--)
{
sum(a, b, c); //c=a+b;
attrib_large(b, a); //a=b;
attrib_large(c, b); //b=c;
}
for (i=b[0]; i; i--) printf("%d", b[i]);
return 0;
}