12.11.2012, 22:47
|
#4 (permalink)
|
VIP user
Регистрация: 10.03.2011
Сообщений: 765
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3453
|
Числа фибоначчи вот программа.
Цитата:
#include <iostream>
#include <math.h>
using namespace std;
const int N = 220;
int ctrl = 0;
div_t t;
void add(int a[N], int b[N], int c[N]){
memset(c, 0, sizeof(int)*N);
int i = 0;
for(i = N - 1; i >= 0; i--){
if(t.quot){
c[i]++;
if(i < ctrl) ctrl = i;
}
t = div((c[i] + a[i] + b[i]),10);
c[i] = t.rem;
}
}
int main()
{
int fib0[N];int fib1[N];int fib2[N];
memset(fib0, 0, sizeof(int)*N);
memset(fib1, 0, sizeof(int)*N);
memset(fib2, 0, sizeof(int)*N);
int n;
cin>>n;
fib0[N - 1] = 1;fib1[N - 1] = 1;
ctrl = N - 1;
if(n<2) fib2[N - 1] = 1;
for (int i = 2;i <= n;i++)
{
add(fib0, fib1, fib2);
memmove(fib0, fib1, sizeof(int)*N);
memmove(fib1, fib2, sizeof(int)*N);
}
for(int i = ctrl; i < N; i++) cout<<fib2[i];
return 0;
}
|
|
|
|