Форум программистов, компьютерный форум CyberForum.ru

Вывести числа по правилу - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
AvengerAlive
5 / 5 / 0
Регистрация: 30.07.2011
Сообщений: 257
19.08.2011, 10:41     Вывести числа по правилу #1
Есть массив чисел 1...n;
Надо вывести вот это
1...1
1...2
.....
n...n

Ну это что-то типа k значной логики, все те числа вывести, только 0 не фигурирует, да и вообще в массиве могут быть любые числа. Это как коротко записать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2011, 10:41     Вывести числа по правилу
Посмотрите здесь:

C++ C++. Заданы два вектора x(x1,x2,…,xn),y(y1,y2,…,yn) и числа a,b. Построить вектор z(z1,z2,…,zn),компоненты которого вычисляются по правилу.
Даны натуральное число n, действительные числа a[1],.,a[n]. Вычислить по правилу C++
Дано вещественное число B>0. Последовательность чисел образуется по правилу: a0=1, ai+1=ai2+1. Распечатать все числа ai такие , что ai<B C++
C++ Классы. Вывести значение числа цифр в дробной части числа
С помощью рекурсии вывести все числа от 1 до введенного пользователем числа k C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
19.08.2011, 10:53     Вывести числа по правилу #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
#include <iostream>
using namespace std;
const int N = 3;
 
void Rec(int *a, int i, int n)
{
   if (i < n)
      for (int j = 1; j < n; j++)
      {
         a[i] = j;
         Rec(a, i + 1, n);
      }
   else
   {
      for (int j = 0; j < n; j++)
         cout << a[j] << " ";
      cout << "\n";
   }
}
 
int main()
{
    int a[N] = {1, 2, 3};
    Rec(a, 0, N);
    return 0;
}
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
19.08.2011, 11:00     Вывести числа по правилу #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <stdio.h>
 
const int n = 4;
char a[n] = {'a', 'b', 'c', 'd'};
char o[n+1] = {0};  // для вывода
 
int doit(int u = 0)
{
    // u - это индекс символа для вывода
    // с - это индекс симола, который выбираем из выборки (a[n])
    int c;
    for (c=0; c<n; c++)
    {
        o[u] = a[c];
        
        if (u==n-1) // если сейчас мы работаем с последним символом вывода, то...
            puts(o);    // вывести
        else
            doit(u+1);  // инача работать с очередным символом вывода
    }
}
 
int main()
{
    doit();
}
Добавлено через 42 секунды
Опять опоздал.
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
19.08.2011, 11:06     Вывести числа по правилу #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Малюсенькая правка:

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
#include <iostream>
using namespace std;
const int N = 3;
 
void Rec(int *a, int i, int n)
{
   if (i < n)
      for (int j = 1; j <= n; j++)
      {
         a[i] = j;
         Rec(a, i + 1, n);
      }
   else
   {
      for (int j = 0; j < n; j++)
         cout << a[j] << " ";
      cout << "\n";
   }
}
 
int main()
{
    int a[N] = {1, 2, 3};
    Rec(a, 0, N);
    return 0;
}
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.08.2011, 11:12     Вывести числа по правилу #5
Цитата Сообщение от AvengerAlive Посмотреть сообщение
Это как коротко записать?
C++
1
2
3
4
#include <iostream>
int main(){
    for (int arr[] = { 1, 2, 4, 7 }, size = sizeof(arr) / sizeof(*arr), i = -1; ++i < size; std::cout << arr[i] << "..." << arr[i] << std::endl);
}
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
19.08.2011, 11:16     Вывести числа по правилу #6
Diagon, надо было в одну строчку весь код написать
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.08.2011, 11:33     Вывести числа по правилу #7
Цитата Сообщение от Olga_ Посмотреть сообщение
Diagon, надо было в одну строчку весь код написать
Некрасиво же получиться.
А так получился просто один большой for.
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
19.08.2011, 11:36     Вывести числа по правилу #8
Кстати, Diagon, ваша программа не то выводит, нужны все значения, например при n=2:
11
12
21
22

Добавлено через 1 минуту
Цитата Сообщение от diagon Посмотреть сообщение
Некрасиво же получиться.
А так получился просто один большой for.

Да это шутка
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.08.2011, 11:43     Вывести числа по правилу #9
Цитата Сообщение от Olga_ Посмотреть сообщение
Кстати, Diagon, ваша программа не то выводит, нужны все значения, например при n=2:
11
12
21
22
А, ну да, задание не понял просто...
-=ЮрА=-
Заблокирован
Автор FAQ
19.08.2011, 11:59     Вывести числа по правилу #10
У меня вышло только так
C++
1
2
3
4
5
6
7
8
#include <iostream.h>
 
int main()
{
    int arr[] = {1,2,4,7};
    for(int i = -1,size = sizeof(arr)/sizeof(arr[0]); i < size - 1;cout<<arr[i]<<"..." <<arr[(i = i + 1)]<<"\r\n");
    return 0;
}
1...1
2...2
4...4
7...7
Press any key to continue
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.08.2011, 12:02     Вывести числа по правилу #11
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
У меня вышло только так
Ну естественно, вы же сначала увеличиваете i, потом выводите, потом проверяете, не меньше ли она n.
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
19.08.2011, 12:06     Вывести числа по правилу #12
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
1...1
2...2
4...4
7...7
Еще раз, нужны все значения, многоточие это символ того, что там что-то стоит. Например, n=3. Тогда
111
112
113
...
332
333

Добавлено через 3 минуты
Кстати, Diagon, эта задача смахивает на разбиение числа, поэтому мой алгоритм очень похож на тот самый, да и вы без труда преобразовали бы тот свой алгоритм для этой задачи
-=ЮрА=-
Заблокирован
Автор FAQ
19.08.2011, 12:09     Вывести числа по правилу #13
Млин сразу не въехал в задание (диагон со своей строчкой сбил - думал прикол в строку записать)

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream.h>
 
int main()
{
    int arr[] = {1,2,4,7};
    int size = sizeof(arr)/sizeof(arr[0]);
    for(int i = 0,k; i < size; i++)
        for(k = i; k < size;k++)
            cout<<arr[i]<<"..." <<arr[k]<<"\r\n";
    return 0;
}

1...1
1...2
1...4
1...7
2...2
2...4
2...7
4...4
4...7
7...7
Press any key to continue


Добавлено через 1 минуту
Цитата Сообщение от Olga_ Посмотреть сообщение
Еще раз, нужны все значения, многоточие это символ того, что там что-то стоит. Например, n=3. Тогда
- капец ну и постановка задачи у человека, ладно сейчас
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
19.08.2011, 12:10     Вывести числа по правилу #14
=ЮрА=, вы запустите мой алгоритм и тогда увидите что должно появиться на экране
-=ЮрА=-
Заблокирован
Автор FAQ
19.08.2011, 12:12     Вывести числа по правилу #15
Думаю теперь по заданию
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream.h>
 
int main()
{
    int arr[] = {1,2,4,7};
    int size = sizeof(arr)/sizeof(arr[0]);
    for(int i = 0,k; i < size; i++)
    {
        cout<<arr[i];
        for(k = i + 1; k < size;k++)
            cout<<arr[k];
        cout<<"\r\n";
    }
    return 0;
}
1247
247
47
7
Press any key to continue
diagon
19.08.2011, 12:13
  #16

Не по теме:

Цитата Сообщение от Olga_ Посмотреть сообщение
Кстати, Diagon, эта задача смахивает на разбиение числа, поэтому мой алгоритм очень похож на тот самый, да и вы без труда преобразовали бы тот свой алгоритм для этой задачи
Возможно, но я так и не понял, что требуется =\
С таким не знаком
Ну это что-то типа k значной логики

-=ЮрА=-
Заблокирован
Автор FAQ
19.08.2011, 12:14     Вывести числа по правилу #17
Цитата Сообщение от Olga_ Посмотреть сообщение
=ЮрА=, вы запустите мой алгоритм и тогда увидите что должно появиться на экране
- это сочетания. Вобще задание поставлено плохо, пусть напишет с цифрами хотябы 4 строчки, тогда можно понять будет
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
19.08.2011, 12:23     Вывести числа по правилу #18
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Думаю теперь по заданию
В каждой строчке одинаковое количество элементов и строчек всего = n^n

Добавлено через 6 минут
Да все и так понятно. Все элементы k-значной логики Это не сочетания...
Пусть имеется набор чисел, например {1,...,n}. Требуется вывести все различные наборы длины n,
в каждом наборе присутствуют элементы из {1,...,n}.

Добавлено через 2 минуты
Впрочем, задача уже решена, например в 4-ом посте
-=ЮрА=-
Заблокирован
Автор FAQ
19.08.2011, 12:24     Вывести числа по правилу #19
Цитата Сообщение от Olga_ Посмотреть сообщение
В каждой строчке одинаковое количество элементов и строчек всего = n^n
- ну теперь ясно - задание банально до ужаса
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
 
int main()
{
    int arr[] = {1,2,4,7};
    int size = sizeof(arr)/sizeof(arr[0]);
    for(int i = 0,j,k; i < size; i++)
    for(j = 0; j < size;j++)
    for(k = 0; k < size;k++)
        cout<<arr[i]<<arr[j]<<arr[k]<<"\r\n";
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2011, 12:25     Вывести числа по правилу
Еще ссылки по теме:

C++ Преобразовать вводимые числа по правилу Ai->Ai*(N-i)
C++ Нужно ввести два числа, а вывести ряд от первого числа до второго
C++ Вывести на экран все числа, номера которых есть числа Фибоначчи

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

Или воспользуйтесь поиском по форуму:
AvengerAlive
5 / 5 / 0
Регистрация: 30.07.2011
Сообщений: 257
19.08.2011, 12:25  [ТС]     Вывести числа по правилу #20
Всем спасибо, вы мне очень помогли!
Yandex
Объявления
19.08.2011, 12:25     Вывести числа по правилу
Ответ Создать тему
Опции темы

Текущее время: 07:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru