Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
щпора проги.docx
Скачиваний:
4
Добавлен:
20.09.2019
Размер:
37.97 Кб
Скачать

//Программа 1. Программа 5

//Перестановки 1-5, возрастание\убывание.

//#include "stdafx.h"

#include "stdio.h"

void pr ( int *p, int n){

int i;

for( i = 1; i <= n; i++)

printf("%d", p[i]);

printf("\n");

}

int main(){

int i, j, r, s, n = 5, temp;

int p[6];

for(i = 0; i <= n; i++)

p[i] = i;

i = 1;

while ( i ){

pr(p, n);

i = n-1;

printf("i=%d", i);

printf("\n");

while( p[i] > p[i+1] )

i--;

j = n;

while( p[i] > p[j] )

j--;

temp = p[i];

p[i] = p[j];

p[j] = temp;

r = n;

s = i+1;

while( r > s ){

temp = p[r];

p[r] = p[s];

p[s] = temp;

r--;

s++;

}

}

}

//Программа 2. Треугольник Паскаля

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

void print(int chislo)

{int i=1, k;

int s=chislo;

while(s>=10)

{ s=s/10;

i++; }

for(k=0;k<(5-i);k++)

printf(" ");

printf("%d", chislo);

}

Int main()

{

int x, y, i=0, j, n=17;

int matrix[18][18];

matrix[0][0]=0;

for(i=1;i<=n;i++)

{ matrix[0][i]=i-1;

matrix[i][0]=i-1;

matrix[i][i]=1;

for(j=i+1;j<=n;j++)

matrix[i][j]=0;

matrix[i][1]=1;

}

for(i=3;i<=17;i++)

{ for(j=2;j<i;j++)

{ matrix[i][j]=matrix[i-1][j]+matrix[i-1][j-1];

}

}

for(i=0;i<=n;i++)

{for(j=0;j<=n;j++)

print(matrix[i][j]);

printf("\n");

}

system ( "PAUSE" );

return 0;

}

//Программа 3. Кол-во разбиений 1-100

#include "stdafx.h"

#include "stdio.h"

int p(int n){

static int pod[101];

int k = 1, m, rez = 0;

if( !n )

return 1;

if( pod[n] )

return pod[n];

while( (n - (3*k*k - k)/2) >= 0 ){

m = k%2 ? 1 : -1;

rez += m*p(n - (3*k*k - k)/2) + m*p(n - (3*k*k + k)/2);

k++;

}

pod[n] = rez;

return rez;

}

Int main(){

int n;

scanf("%d", &n);

if( n <= 0 || n > 100)

return -1;

printf("Raz = %d\n", p(n));

scanf("%d", &n);

}

//Программа 4. Алгоритм Эрлиха.

#include "stdafx.h"

#include "stdio.h"

#define N 12

void pr( int* m){

int i, j, dif = 1;

for(i = 1; i<= N; i++){

if( m[N-i] )

printf(" %d*%d ", m[N-i], i);

}

printf(" = ");

for(i = 1; i<= N; i++){

if( m[N-i] >= 2 )

dif = 0;

for( j = 1; j <= m[N-i]; j++ ) printf(" %d +", i);

}

if( dif )

printf("\b <<--\n");

else

printf("\b \n");

}

void erl(int sum){

int m[N];

int p[N];

int i,l = 1,l1;

int min;

int flag = 1;

for( i = 0; i < sum; i++){ p[i] = sum - i;

m[i] = 0;

}

m[sum-1] = sum;

pr(m);

while(1){

if( m[sum-l] > 1){

min = 2*p[sum-l];

m[sum-l] -= 2;

m[sum-l-1]++;

m[sum-1] += -p[sum-l-1] + min;

}else{

l1 = l + 1;

for( i = l1; i <= sum; i++, l1++)

if( m[sum-i] )

break;

min = m[sum-l]*p[sum-l] + m[sum-l1]*p[sum-l1];

m[sum-l]=0;

m[sum-l1]=0;

m[ sum - p[sum-l1] - 1 ]++;

m[sum-1] = min - p[sum-l1] - 1;

}

l = 1;

for( i = 1; i <= sum; i++, l++)

if( m[sum-i] ) break;

pr(m);

if( m[0] == 1 ) break;

}

}

Int main(){

int t;

erl(N);

scanf("%d", &t);

}

//Программа 6.

//Перестановки 1- 5, ВИ и ТИ зеркало

#include "stdio.h"

void pr ( int *p, int *d, int n){

int i, j = 0, fl = 1;

int w[5] = {0,0,0,0,0};

for( i = 0; i < n; i++){

j = 0;

while( p[j] != i+1 ){

if( p[j] > i+1)

w[i]++;

j++;

}

printf("%d", p[i]);

}

printf("\t");

for( i = 0; i < n; i++){

printf("%d", d[i]);

if( d[i] != w[4-i] )

fl = 0;

}

printf("\t");

for( i = 0; i < n; i++)

printf("%d", w[i]);

if( fl)

printf(" <<--");

printf("\n");

}

Int main(){

int i,j, k, n = 5, kol_sp;

int p[5] = {1,2,3,4,5}, d[5] = {0,0,0,0,0}, spis[5];

pr(p, d, n);

for( i = 1; i < 120; i++){

d[4] = i / 24;

d[3] = (i - d[4]*24) / 6;

d[2] = (i - d[4]*24 - d[3]*6) / 2;

d[1] = i - d[4]*24 - d[3]*6 - d[2]*2;

d[0] = 0;

for( j = 0; j < n; j++)

spis[j] = n - j;

kol_sp = n;

for( k = n-1; k >= 0; k--){

p[k] = spis[d[k]];

kol_sp--;

for( j = d[k]; j < kol_sp; j++)

spis[j] = spis[j+1];

}

pr(p, d, n);

}

}

//Программа 7

//Метод вращения. 5 гласных букв

#include "stdafx.h"

#include "stdio.h"

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]