f0 = 0 ;
f1 = 1 ;
f = 100 .
fi = fi-2 + fi-1 ;
f .
, fi. , fi f (f = 100). fi+1 fi, . :
fi = fi-2 + fi-1.
, (fi)
fi-2 = 0, fi-1 = 1.
:
fi-2 = fi-1 fi-1 = fi.
(f = 100) fi < f, ( f).
, , ( ).
(. 7.7). () , () .
. () . 7.2, () . 7.3.
7.2
i | f | f0 | fi | fi-2 | fi-1 | |
i | fgr | f[0] | f[ i ] | f[i-2] | f[i-1] |
. 7.7
7.3
i | f | f0 | fi | fi-2 | fi-1 | |
i | fgr | f0 | fi | fi2 | fi1 |
.
()
#include <stdlib.h> /* */
#include <stdio.h> /* */
#include <conio.h>
#include <windows.h>
main() /* */
{
int i, fgr, f[100]; /* */
char buf[50]; /* */
CharToOem("\n : ",buf);
printf(buf);
scanf("%d", &fgr);
i = 2; /* */
f[0] = 0; /* */
f[1] = 1; /* */
printf("\n ----------------"
"\n | i | fi |"
"\n ----------------");
do
{
f[ i ] = f[ i - 2 ] + f[ i - 1 ]; /* i */
|
|
printf("\n | %3d | %3d |", i - 1, f[ i ]);
i = i +1; /* */
}while(f[ i - 1 ] < fgr); /* */
printf("\n ----------------\n");
getch();
}
.
()
#include <stdlib.h> /* */
#include <stdio.h> /* */
#include <conio.h>
#include <windows.h>
main() /* */
{
int fgr, fi, fi1, fi2; /* */
char buf[50]; /* */
CharToOem("\n : ",buf);
printf(buf);
scanf("%d", &fgr);
fi2 = 0; /* */
fi1 = 1; /* */
printf("\n ------------------------------"
"\n | f(i-2) | f(i-1) | f(i) |"
"\n ------------------------------");
do
{
fi = fi2 + fi1; /* i */
printf("\n | %3d | %3d | %3d |", fi2, fi1, fi);
fi2 = fi1; /* */
fi1 = fi; /* */
}while(fi < fgr); /* */
printf("\n ------------------------------");
getch();
}
100 .
7.3 ( , ).
. (EditFgr). - (ListBoxFi).
|
|
( ) , . .
. .
()
#include <stdlib.h> /* */
#include <stdio.h> /* */
void TIter2DlgClient::BNClickedOK() /* */
{
// INSERT>> Your code here.
int i, fgr, f[100]; /* */
char buf[25]; /* */
ListBoxFi->ClearList(); /* - */
EditFgr->GetText(buf,10); /* */
fgr=atoi(buf); /* */
i = 2; /* */
f[0] = 0; /* */
f[1] = 1; /* */
do
{
f[i] = f[i-2] + f[i-1]; /* i */
sprintf(buf,"%3d %5d",i,f[i]); /* */
ListBoxFi->AddString(buf); /* fi*/
i = i +1; /* */
}while(f[i-1] < fgr); /* */
}
100
()
#include <stdlib.h> /* */
#include <stdio.h> /* */
void TIter2DlgClient::BNClickedOK2() /* */
|
|
{
// INSERT>> Your code here.
int fgr, fi, fi1, fi2; /* */
char buf[25]; /* */
ListBoxFi->ClearList(); /* - */
EditFgr->GetText(buf,10); /* */
fgr=atoi(buf); /* */
fi2 = 0; /* */
fi1 = 1; /* */
do
{
fi = fi2 + fi1; /* */
sprintf(buf,"%5d %5d %5d ",fi2, fi1, fi);/* */
ListBoxFi->AddString(buf); /* fi2, fi1, fi */
fi2 = fi1; /* */
fi1 = fi; /* */
}while(fi < fgr); /* */
}
100
7.4 ( , ).