void ThirdMinum int int std cout Генерация последовательностей длины и

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void ThirdMinum(int n, int k){
std::cout << "Генерация последовательностей длины n из чисел" << std::endl;
std::cout << "0, ... , k-1 с минимальными изменениями:" << std::endl;
int i;
bool done = false;
int *m = (int *) calloc(n, sizeof(int));
int *p = (int *) calloc(n, sizeof(int));
for (i = 0; i < n; ++i) p[i] = 1;
while (!done){
for (i = n - 1; i >= 0; --i)
printf("%d ", m[i]);
printf("\n");
for (i = 0; i < n && (m[i] + p[i] == k || m[i] + p[i] == -1); ++i) p[i] *= -1;
if (i == n) done = true;
else m[i] += p[i];
}
free(m); free(p);
}
void main(){
setlocale(LC_ALL, "Russian");
//ThirdMinum(2, 5);
//Sochitan(7, 5);
//Podstav(3);
PodstavMin(4);
}