, . , , . .
, . . , , , , . . , . , .
, , . . , .
- , .
D:
R(D) ,
RV(D) ( ),
RL(D) ,
HR(D) .
, n - :
int Fib(int n){ //n
if(n<3) return 1; //
return Fib(n-1)+Fib(n-2); //
}
(. 34.1):
. 34.1.
.
D = 5 | D = n |
R(D)=9 | R(D)=2fn-1 |
RV(D)=4 | RV(D)=fn-1 |
RL(D)=5 | RL(D)=fn |
HR(D)=4 | HR(D)=n-1 |
1. .
, . . .
|
|
.
: m, n , .
: m=n 1, .
: , m < n m > n. . . , , : , . , , ( ). : (. 34.2).
. 34.2. 13x5
#include "stdafx.h"
#include <iostream>
using namespace std;
int kv(int m,int n);
int _tmain(int argc, _TCHAR* argv[]) {
int a,b,k;
printf(" ->");
scanf("%d%d",&a,&b);
k = kv(a,b);
printf(" %d %d
%d ",a,b,k);
system("pause");
return 0;
}
int kv(int m,int n){ //m,n
if(m==n) return 1; //
if(m>n) return 1+kv(m-n,n); // m>n
return 1+kv(m,n-m); // m<n
}
(. 34.3).
D = (13, 5) | D = (m, n), m n, |
R(D)=6 | R(D)=m |
RV(D)=4 | RV(D)=m-2 |
RL(D)=1 | RL(D)=1 |
HR(D)=6 | HR(D)=m |
. 34.3. 13x5
2. .
. .
.
: x, y , ; n , , n>1 ().
: n=2 , (. 4). 1: 1. (x0,y0) (x1,y1), :
: n>2, , ..
n=3 , 2: 1, . , . , : (), 2: 1, , , (. 4B).
n=3 , 3: 1, , : , , (. 4C).
|
|
. 34.4.
, n - (n-1): 1, , : (n-1) - n - . (xn,yn) (n-1) - (cxn-1,cyn-1), :
#include "stdafx.h"
#include <iostream>
using namespace std;
#define max 20
void centr(int n,float *x, float *y, float *c);
int _tmain(int argc, _TCHAR* argv[]){
int m, i=0;
FILE *f;
if ((f = fopen("in.txt", "r")) == NULL)
perror("in.txt");
else {
fscanf(f, "%d",&m);
printf("\n%d",m);
if (m < 2 || m > max) //
printf (" ");
else {
float *px,*py,*pc;
px = new float[m];
py = new float[m];
pc = new float[2];
pc[0] = pc[1] = 0;
while(i<m) {
fscanf(f, "%f %f",&px[i], &py[i]);
printf("\n%f %f",px[i], py[i]);
i++;
}
centr(m,px,py,pc);
printf ("\n :
(%.4f, %.4f)",pc[0],pc[1]);
delete [] pc;
delete [] py;
delete [] px;
}
fclose(f);
}
system("pause");
return 0;
}
void centr(int n,float *x, float *y, float *c){
//n - ,
//x,y - ,
//c -
if(n==2){ //
c[0]=(x[0]+x[1])/2;
c[1]=(y[0]+y[1])/2;
}
if(n>2) { //
centr(n-1,x,y,c);
c[0]= (x[n-1] + (n-1)*c[0])/n;
c[1]= (y[n-1] + (n-1)*c[1])/n;
}
}
.
D = 4 | D = n |
R(D)=3 | R(D)=n-1 |
RV(D)=1 | RV(D)=n-3 |
RL(D)=1 | RL(D)=1 |
HR(D)=3 | HR(D)=n-1 |
.
3. .
.
, , . .
, 6 11 :
5+1
4+2, 4+1+1
3+3, 3+2+1, 3+1+1+1
2+2+2, 2+2+1+1, 2+1+1+1+1
1+1+1+1+1+1
. R(n,k) n , k. R(n,k).
1, , R(n,k)=1.
1, : R(n,k)=1.
, R(n,k)=R(n,n), , .
, , ( ), : R(n,n)=R(n,n-1)+1.
(n>k). n : k, k. , k, R(n-k,k), k . n , k-1, R(n,k-1). , R(n,k)=R(n-k,k)+R(n,k-1).
|
|
.
: n , k.
: , :
n=1 R(n,k)=1,
k=1 R(n,k)=1.
: , .
n=k R(n,k)=R(n,n-1)+1,
n<k R(n,k)=R(n,n),
n>k R(n,k)=R(n-k,k)+R(n,k-1).
#include "stdafx.h"
#include <iostream>
using namespace std;
unsigned long int Razbienie(unsigned long int n,
unsigned long int k);
int _tmain(int argc, _TCHAR* argv[]){
unsigned long int number, max,num;
printf ("\n : ");
scanf ("%d", &number);
printf ("
: ");
scanf ("%d", &max);
num=Razbienie(number,max);
printf (" %d
%d.", number, max);
printf ("\n %d",num);
system("pause");
return 0;
}
unsigned long int Razbienie(unsigned long int n,
unsigned long int k){
if(n==1 || k==1) return 1;
if(n<=k) return Razbienie(n,n-1)+1;
return Razbienie(n,k-1)+Razbienie(n-k,k);
}
4. .
, unsigned long. . 16.
n - ( , = 16), k, n10=kp.
: n , .
: , , , : n , k = n. , n : , n < .
: k n , , n p.
#include "stdafx.h"
#include <iostream>
using namespace std;
#define maxline 50
void perevod(unsigned long n, unsigned int p,FILE *pf);
int _tmain(int argc, _TCHAR* argv[]){
unsigned long number10;
unsigned int osn=16;
char number16[maxline];
FILE *f;
if ((f=fopen("out.txt", "w"))==NULL)
perror("out.txt");
else {
printf ("\n : ");
scanf("%ld", &number10);
perevod(number10, osn, f);
fclose(f);
}
if ((f=fopen("out.txt", "r"))==NULL)
perror("out.txt");
else {
fscanf(f,"%s",number16);
printf("\n %ld(10)=%s(16)", number10, number16);
fclose(f);
}
system("pause");
return 0;
}
void perevod(unsigned long n, unsigned int p, FILE *pf){
char c;
unsigned int r;
if(n >= p) perevod (n/p, p, pf);//
r=n%p;
c=r < 10? char (r+48): char (r+55);
putc(c, pf);
}
, , .
|
|
, .
.
, .
() , , .
- , .
, .
, , , , .
, .
.
, .
, .
.
- .
- .
- . , .
- .
- , , .
- .
- . , , .