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

Заполнить матрицу по диагонали - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перегрузка operator< для двух экземпляров класса отрезок http://www.cyberforum.ru/cpp-beginners/thread1564800.html
Всем добра, в классе отрезок хочу перегрузить операцию < правильно ли я сделал ? При этом отрезок с координатами x1=1 y1=1 и x2=4 y2=4 должен быть равен отрезку x1=4 y1=4 и x2=1 y2=1; class Segment...
C++ Найти количество элементов последовательности, кратных числу K1 и не кратных числу K2 2)Дана последовательность целых чисел, за которой следует 0. Найти количество элементов этой последовательности, кратных числу K1 и не кратных числу K2. http://www.cyberforum.ru/cpp-beginners/thread1564795.html
Определить класс «Строка» – String длины n; написать несколько конструкторов C++
Определить класс «Строка» – String длины n. Написать несколько конструкторов, в том числе конструктор копирования. Реализовать методы для выполнения конкатенации строк, извлечения символа из заданной...
C++ Создать класс String – строку, используя динамическую память
Создать класс String – строку, используя динамическую память. Определить операторы "+" –сложение строк, "=" и "+=" – присваивания, как методы класса. Определить операторы сравнения "==", "!=", "<",...
C++ Может кто знает как составить из этих слов осмысленный текст? http://www.cyberforum.ru/cpp-beginners/thread1564715.html
Описание главной функции, оператор цикла while, оператор ввода и вывода строки, увеличение целой переменной на 10
C++ Убрать повторяющиеся символы из строки #include "stdafx.h" #include "iostream" #include "string" using namespace std; string a; bool used; int _tmain(int argc, _TCHAR* argv) { cout << "The original text - "; подробнее

Показать сообщение отдельно
Krock21rus
74 / 74 / 19
Регистрация: 18.11.2013
Сообщений: 373
Завершенные тесты: 2
30.10.2015, 13:46
я тут подумал, а зачем хранить матрицу? если можно её не хранить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main(int argv, char **argc)
{
    int n;
    cin >> n;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            int tmp;
            int numdiagonal = n+n-i-j+1;
            if(numdiagonal<=n)
            {
                tmp = numdiagonal*(numdiagonal-1)/2+min(i,n-j+1);
            }
            else tmp = (n+1)*n/2 + ((n-1)*n/2 - ((i+j-1)*(i+j)/2)) +  i;
            printf("%6d",tmp);
        }
    }
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru