- •Int main()
- •Int main(){
- •Int main(){
- •Int main(){
- •Void pr ( int *p, int n){
- •Int main(){
- •Void pr ( int *p, int n){
- •Int main(){
- •Int main()
- •Int main(){
- •Void pr ( int *p, int n){
- •Int main(){
- •Void pr ( int *p, int n){
- •Int main(){
- •Void pr ( int *p, int n){
- •Int main(){
- •Int main(){
- •Int main(){
- •Int main(){
- •Int main(){
//Программа 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"