, , . . , .
, , , . , , .
N!=F(N) N=5 (.34).
( ) | ( ) |
.34. 5
. . , , (). . , , . , , , .
, . , (N) N=6 .35:
(6) (5) (4). , (4), (3) (3), (2). , (3) , (2) . (n) n, . . , : . , - , .. .
, , , , , , . . , M , N , K , N/M . , , , .
|
|
, , , . , . (.36):
, :
FCalculated , ;
(n) FCalculated [n];
, FCalculated [n] = 0. FCalculated [n] <> 0, FCalculated [n] , (n).
.
const int NFib = 300; //
//
int FCalculated[NFib];
int FibDinam (int n)
{
if (FCalculated[n]!= 0) return(FCalculated[n]);
else
{
if ((n == 1) || (n == 2)) return(1);
else
{
FCalculated[n]= FibDinam(n-1)+FibDinam(n-2);
return(FCalculated[n]);
}
}
}
int main()
{
int i,n;
//
for(i=1;i<NFib;i++)
{
FCalculated[i] = 0;
}
FCalculated[1] = 1;
FCalculated[2] = 1;
printf(" N:\n");
scanf("%d", &n);
printf("FibD[%d] = %d\n", n, FibDinam(n));
}
, , , , , .. n- n . . , N=85 :
) (Fib);
) (FibDinam);
) , (FibCircle);
():
) ;
) ;
) , .. .
.
. : Intel Core 2 Duo CPU 3 Ghz, 4 .
32. , .
|
|
int Summa(int n, int A[100])
{
if (n = 0) return(0);
else return(A[n] + Summa(n-1,A));
}
int main()
{
int i,n;
int a[100];
printf(" ?\n");
scanf("%i", &n); //N<100
for(i=1;i<n;i++)
{
a[i] = -10 + rand();
printf("%d\n",a[i]);
}
printf(": %d\n", Summa(n,a));
}
9.
. - , - .
. , . , , , , .. . , .
: (text) (binary).
- . , (, , ).
- , , .
, . fopen(). (, c:\my_file.txt) , . - . ; , , :
file *fp;
file - , stdio.h, fp - . fopen() :
fp = fopen(< >, < >);
(.. ) , , : c:\\my_file.txt - my_file.txt C.
, 13.
13.
r | ; |
w | ( , ); |
( , , , ); | |
r+ | ; |
w+ | ; |
a+ | ; |
rb | ; |
wb | ; |
b | ; |
r+b | ; |
w+b | ; |
+b | ; |
rt | ; |
wt | ; |
at | ; |
r+t | ; |
w+t | ; |
a+t | . |
t b (, r, w ), _fmode. fmode=0_BINARY, , _fmode=0_TEXT - . 0_BINARY 0_X fcntl.h.
r+b : rb+.
|
|
fopen() , NULL.
:
if ((fp = fopen("c:\\my_file.txt", "rt")) == NULL)
{
puts(" \n");
exit(1);
}
. fclose(). :
int fclose(FILE *fp);
fclose() . .
, ( stdio.h):
1. putc() :
int putc(int , FILE *fp);
fp - , fopen(), - ( int, ). putc() , EOF. stdio.h -1.
2. getc() :
int getc(FILE *fp);
fp - , fopen(). . int, . , getc() F.
3. feof() :
int feof(FILE *fp);
fp - , fopen(). , 0.
4. fputs() . puts() , .
fputs("mple", fp);
EOF.
5. fgets() . gets() , , - . , , .
fgets(string, n, fp);
string NULL .
6. fprintf() , printf(), . , .
fprintf(fp, "%",);
7. fscanf() , scanf(), . , .
fscanf(fp, "%", &a);
EOF.
8. fseek() :
int fseek(FILE *fp, long count, int access);
fp - , fopen(), count - , , access - .
access :
0 - ;
|
|
1 - ;
2 - .
, - .
9. ferror() . :
int ferror(FILE *fp);
, .
10. remove() :
int remove(char *file_name);
file_name - . , .
11. rewind() :
void rewind(FILE *fp);
12. fread() .
unsigned fread(void *ptr, unsigned size, unsigned n, FILE *fp);
n , size , fp , ptr. n*size. fread() , - 0.
13. fwrite() .
unsigned fwrite(void *ptr, unsigned size, unsigned n, FILE *fp);
n , size , fp. , ptr. fwrite() , - .
. .14.
14.
stdin | ( - c ); |
stdout | ( - ); |
stder | ( ); |
stdprn | ; |
stdaus | . |
/ ( ), UNIX. io.h. :
open() - ;
close() - ;
read() - ;
write() - ;
lseek() - ;
unlink() - .
33. , . , , . .
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *file;
char* file_name = "file.txt";
char s[128];
int i, n;
int fnumber, fsum=0;
signed sim;
printf (" : ");
scanf ("%d", &n);
file = fopen(file_name, "w"); //
for(i=1;i<=n;i++)
{
printf (" %d: ", i);
scanf ("%d", &fnumber); //
fputs ((char *) &fnumber, file); //
}
fclose (file); //
file = fopen(file_name, "r"); //
printf("\n ");
puts (" ");
while ((fnumber = fgetc(file))!= EOF) //
//
{
printf ("%x\t",fnumber); //
fsum = fsum + fnumber; //
}
fclose (file); //
file = fopen(file_name, "a"); //
fputs(" \n", file); //
fprintf(file, "%s\n", &fsum);
printf("\n ");
fclose (file); //
puts("");
system("pause");
}
:
: 5
1: 5
2: 4
3: 3
4: 2
5: 1
5 4 3 2 1
!
a.txt :
|
|
, .