0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 59
1

Сформировать последовательность по заданному правилу

12.10.2016, 20:17. Показов 788. Ответов 1
Метки нет (Все метки)

Всем привет, еще раз!
В общем стоит такая задача:
Даны два положительных числа n и k.
Надо вывести последовательность x1,x2,x3,...,xk при условии, что xi - натуральное число и 1<=xi<=k.

Пример 1:
Input: 2 3
Output:
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3

Пример 2:
Input: 3 3
Output:
1 1 1
1 1 2
1 1 3
1 2 1
1 2 2
1 2 3
1 3 1
1 3 2
1 3 3
2 1 1
2 1 2
2 1 3
2 2 1... (и так далее)

Набросал следующий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
 
int main(){
    int n,k, x=1, s=pow(k,n);
    cin>>n>>k;
    vector<vector<int> > v(k,vector<int>(n*k));
    if(n >= 1 && k >= 1 && n <= 6 && k <= 6)
    {
        for (int i=0; i<s; i++){
 
            for (int j=0; j<k; j++){
                v[i][j]= x;
                cout<<v[i][о];
                x++;
            }
        }
    }
    return 0;
}
В итоге ничего не получил
Если кто может, набросайте код или подскажите алгоритм действий, всем спасибо

Добавлено через 3 часа 22 минуты
Ребят?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2016, 20:17
Ответы с готовыми решениями:

Сформировать массив по заданному правилу
Даны целые числа N (&gt; 2), A и B. Сформировать и вывести целочисленный массив размера N,...

Сформировать массив по заданному правилу
Напишите программу, которая создает двухмерный массив и заполняет его по следующему принципу:...

Сформировать матрицу по заданному правилу
Данна целочисленная матрица размером 3 * 4. Написать программу, которая формирует двумерный массив...

Сформировать матрицу по заданному правилу
Здравствуйте! Подскажите пожалуйста где моя ошибка!? На грядках посажена капуста и морковь. Грядки...

1
365 / 321 / 219
Регистрация: 21.02.2013
Сообщений: 756
13.10.2016, 14:16 2
C++
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
using namespace std;
 
void print( const int* arr, const int& n){
    for(int i = 0 ; i != n; i++){
                cout << arr[i] << " ";
            }
             cout << endl;
}
 
int main()
{
    int n, k;
    cout << "Input: ";
    cin >> n >> k;
    int arr[n];
    for(int i = 0 ; i != n; i++) arr[i] = 1;
    int j = 1;
 
    while (n - j >= 0){
 
            print(arr, n);
 
            arr[n - j]++;
            if(arr[n - j] > k){
 
                   if(arr[n - j - 1] < k && n - j > 0){
                        for(int i = n - j ; i != n; i++) arr[i] = 1;
                        arr[n - j - 1]++;
                        j = 1;
                   }
                   else if(arr[n - j - 1] == k && n - j > 0){
 
                        while(arr[n - j - 1] == k && n - j > 0){
                            j++;
 
                        }
                        if(n - j > 0){
                            for(int i = n - j ; i != n; i++) arr[i] = 1;
                            arr[n - j - 1]++;
                            j = 1;
                        } else break;
 
                               }
                   else break;
 
 
            }
 
     }
    return 0;
}
вот код, объяснить трудновато, сам методом тыка подгонял, но работает.
Возможны и проще решения, наверное!?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2016, 14:16
Помогаю со студенческими работами здесь

Сформировать вектор по заданному правилу
Даны натуральное число n и действительные числа y1 y2…yn. Получить вектор Z (Z1, Z2…Zn),...

Сформировать целочисленный массив по заданному правилу
даны целые числа n(&gt;2), a и b. сформировать и вывести целочисленный массив размера N, первый...

Из массива сформировать матрицу по заданному правилу
Помогите написать код. вот задание вариант Б П.5.18.Правил Запрещено размещать задания и...

Сформировать новый массив по заданному правилу
Сформировать массив J(10) из массива I(10) по следующему принципу: J(N)=I(N)+N.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru