Pagini recente » Cod sursa (job #1686944) | Cod sursa (job #2085285) | Cod sursa (job #1048614) | Cod sursa (job #1591343) | Cod sursa (job #1715840)
#include <cstring>
#include <cstdio>
#define BASE 1000000
using namespace std;
int v1[100] , v2[100] , v3[100];
int n;
void adun(int A[] , int B[] , int C[]);
void copie(int A[] , int B[]);
void afis(int A[]);
int main() {
freopen("nunta.in" , "r" , stdin);
freopen("nunta.out" , "w" , stdout);
scanf("%d" , &n);
v1[1] = v1[0] = 1;
v2[1] = v2[0] = 1;
v3[1] = v3[0] = 1;
for (int i = 2; i <= n; ++i) {
adun(v3 , v2 , v1);
copie(v1 , v2);
copie(v2 , v3);
}
afis(v3);
return 0;
}
void adun(int A[] , int B[] , int C[]) {
int t = 0;
memset(A , 0 , sizeof(A));
A[0] = B[0];
for (int i = 1; i <= B[0]; ++i) {
A[i] = B[i] + C[i] + t;
t = A[i] / BASE;
A[i] %= BASE;
}
while (t) {
A[++A[0]] = t % BASE;
t /= BASE;
}
}
void copie(int A[] , int B[]) {
memset(A , 0 , sizeof(A));
for (int i = 0; i <= B[0]; ++i) {
A[i] = B[i];
}
}
void afis(int A[]) {
printf("%d", A[A[0]]);
for (int i = A[0] - 1; i > 0; --i) {
int x = A[i] , nr = 0;
if (x == 0)
nr = 1;
while (x) {
++nr;
x /= 10;
}
for(int j = nr + 1; j <= 6; ++j) {
printf("0");
}
printf("%d", A[i]);
}
}