1 Востаннє редагувалося AnderS0N (11.11.2016 20:34:23)

Тема: C++ цикли ( чи можна було зробити по-іншому )

Доброго вечора пані та панове.
Щойно виконував таке завдання:

Прихований текст
Вивести на екран:
1 1
2 1 2
3 1 2 3
4 1 2 3 4

23 1 2 3 .. 22 23

Код:

Прихований текст

#include <iostream>

using namespace std;

int main()

{
    for (int i = 1; i <= 1; i++)
        cout << "1 1\n";
        cout << "2 1 2\n";
        cout << "3 1 2 3\n";
        cout << "4 1 2 3 4\n";
        cout << "5 1 2 3 4 5\n";
        cout << "6 1 2 3 4 5 6\n";
        cout << "7 1 2 3 4 5 6 7\n";
        cout << "8 1 2 3 4 5 6 7 8\n";
        cout << "9 1 2 3 4 5 6 7 8 9\n";
        cout << "10 1 2 3 4 5 6 7 8 9 10\n";
        cout << "11 1 2 3 4 5 6 7 8 9 11\n";
        cout << "12 1 2 3 4 5 6 7 8 9 10 11 12\n";
        cout << "13 1 2 3 4 5 6 7 8 9 10 11 12 13\n";
        cout << "14 1 2 3 4 5 6 7 8 9 10 11 12 13 14\n";
        cout << "15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\n";
        cout << "16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16\n";
        cout << "17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n";
        cout << "18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n";
        cout << "19 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19\n";
        cout << "20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20\n";
        cout << "21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21\n";
        cout << "22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22\n";
        cout << "23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23\n";


    system("pause");
    return 0;
}

Так ось питання, як це завдання за допомогою циклів (масивів) зробити швидше і щоб код був не таким великим.
Дякую *DANCE*

2 Востаннє редагувалося #Sparta (11.11.2016 20:45:05)

Re: C++ цикли ( чи можна було зробити по-іншому )

AnderS0N написав:

Доброго вечора пані та панове.
Щойно виконував таке завдання:

Прихований текст
Вивести на екран:
1 1
2 1 2
3 1 2 3
4 1 2 3 4

23 1 2 3 .. 22 23

Код:

Прихований текст

#include <iostream>

using namespace std;

int main()

{
    for (int i = 1; i <= 1; i++)
        cout << "1 1\n";
        cout << "2 1 2\n";
        cout << "3 1 2 3\n";
        cout << "4 1 2 3 4\n";
        cout << "5 1 2 3 4 5\n";
        cout << "6 1 2 3 4 5 6\n";
        cout << "7 1 2 3 4 5 6 7\n";
        cout << "8 1 2 3 4 5 6 7 8\n";
        cout << "9 1 2 3 4 5 6 7 8 9\n";
        cout << "10 1 2 3 4 5 6 7 8 9 10\n";
        cout << "11 1 2 3 4 5 6 7 8 9 11\n";
        cout << "12 1 2 3 4 5 6 7 8 9 10 11 12\n";
        cout << "13 1 2 3 4 5 6 7 8 9 10 11 12 13\n";
        cout << "14 1 2 3 4 5 6 7 8 9 10 11 12 13 14\n";
        cout << "15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\n";
        cout << "16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16\n";
        cout << "17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n";
        cout << "18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n";
        cout << "19 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19\n";
        cout << "20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20\n";
        cout << "21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21\n";
        cout << "22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22\n";
        cout << "23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23\n";


    system("pause");
    return 0;
}

Так ось питання, як це завдання за допомогою циклів (масивів) зробити швидше і щоб код був не таким великим.
Дякую *DANCE*


Ого. Цикл на 1 ітерацію. Ви серйозно ?)
А по сабжу , то у Вас буде 2 цикли (один в інший вкладений). Причому внутрішній залежатиме від зовнішнього.

Студент НУ "ЛП".

3

Re: C++ цикли ( чи можна було зробити по-іншому )

#Sparta написав:

Ого. Цикл на 1 ітерацію. Ви серйозно ?)
А по сабжу , то у Вас буде 2 цикли (один в інший вкладений). Причому внутрішній залежатиме від зовнішнього.

Так на 1 ітерацію))

4

Re: C++ цикли ( чи можна було зробити по-іншому )

Ваш цикл тогй що нижній, я спочатку не так зрозумів завдання тому написав верхній а виявляється все простіше.

Прихований текст

int main()
{
    

    int maxNumber = 23;
    for (int i = 1; i <= maxNumber; i++)
    {
        for (int j = -i; j <= i; j++)
        {
            if (j == 0) continue;
            std::cout << (j > 0 ? j : -j) << " ";
        }

        std::cout << std::endl;
    }

    for (int i = 1; i <= maxNumber; i++)
    {
        std::cout << i << " ";
        for (int j = 1; j <= i; j++)
        {
            std::cout << j << " ";
        }
        std::cout << std::endl;
    }

    return 0;
}

Подякували: Ярослав1

5

Re: C++ цикли ( чи можна було зробити по-іншому )

#include <iostream>
using namespace std;
 
int main() {
    auto begin = 1 ,
         end   = 23;
    for( auto i = begin; i <= end; ++i ) {
        cout << i << " ";
        for( auto j = 1 ; j <= i; ++j ) {
            cout << j << " ";
        }
        cout << "\n";
    }
    return 0;
}

http://ideone.com/3rmKnb

Подякували: Betterthanyou, Ярослав2

6

Re: C++ цикли ( чи можна було зробити по-іншому )

AnderS0N написав:

Доброго вечора пані та панове.
Щойно виконував таке завдання:

Прихований текст
Вивести на екран:
1 1
2 1 2
3 1 2 3
4 1 2 3 4

23 1 2 3 .. 22 23

Код:

Прихований текст

#include <iostream>

using namespace std;

int main()

{
    for (int i = 1; i <= 1; i++)
        cout << "1 1\n";
        cout << "2 1 2\n";
        cout << "3 1 2 3\n";
        cout << "4 1 2 3 4\n";
        cout << "5 1 2 3 4 5\n";
        cout << "6 1 2 3 4 5 6\n";
        cout << "7 1 2 3 4 5 6 7\n";
        cout << "8 1 2 3 4 5 6 7 8\n";
        cout << "9 1 2 3 4 5 6 7 8 9\n";
        cout << "10 1 2 3 4 5 6 7 8 9 10\n";
        cout << "11 1 2 3 4 5 6 7 8 9 11\n";
        cout << "12 1 2 3 4 5 6 7 8 9 10 11 12\n";
        cout << "13 1 2 3 4 5 6 7 8 9 10 11 12 13\n";
        cout << "14 1 2 3 4 5 6 7 8 9 10 11 12 13 14\n";
        cout << "15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\n";
        cout << "16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16\n";
        cout << "17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n";
        cout << "18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n";
        cout << "19 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19\n";
        cout << "20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20\n";
        cout << "21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21\n";
        cout << "22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22\n";
        cout << "23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23\n";


    system("pause");
    return 0;
}

Так ось питання, як це завдання за допомогою циклів (масивів) зробити швидше і щоб код був не таким великим.
Дякую *DANCE*

http://replace.org.ua/img/avatars/2.jpg?no_cache=aDSLiYSm

py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊
Подякували: koala1