.


:




:

































 

 

 

 





, . , , . .

, . . , , , , . . , . , .

, , . . , .

- , .

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);

}

, , .

, .

.

, .

() , , .

- , .

, .

, , , , .

, .

.

, .

, .

.

  1. .
  2. .
  3. . , .
  4. .
  5. , , .
  6. .
  7. . , , .

 

 





:


: 2016-09-03; !; : 2931 |


:

:

, .
==> ...

1728 - | 1608 -


© 2015-2024 lektsii.org - -

: 0.093 .