Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 3

Матрица записанная по спирали. Проверить, возрастающая ли последовательность чисел в ней

20.02.2014, 03:37. Показов 1205. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста с заданием. Пользователь задает матрицу.(ряды, столбцы, потом числа) Нужно проверить, возрастающая ли последовательность чисел в ней по спирали(по часовой стрелке). Пример такой матрици:
5 6 7 8 12 15
70 72 73 74 75 18
63 79 78 77 76 18
56 51 48 32 25 24
Программа должна работать, пока на место рядов матрици не получит число >=0. Высывает 1 - да, 0 - нет.
Вот написанная мною программа, но она неэфективная. Нужно, чтобы работала быстрее. Как это возможно сделать?


Java
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
public static void main(String[] args) {
        int rows, columns; 
        int[][] matrix;
        int left, right, up, down;
        int isIncreasing;
       
 while((rows=sc.nextInt())>0){
            isIncreasing = 1;
            columns=sc.nextInt();
            matrix= loadMatrix(rows,columns);
             System.out.println(isIncreasing(matrix));
         }
    }
 
 
 
    private static int[][] loadMatrix(int m, int n) {
        int[][] matrix = new int[m][n];
        for (int k = 0; k < m; k++) {
            for (int l = 0; l < n; l++) {
                matrix[k][l] = sc.nextInt();
            }
        }
        return matrix;
    }
 
 
 
    private static int isIncreasing(int[][]a){
       int number1,number2=0;
       int left=0;
       int right=a[0].length-1;
       int up=0;
       int down=a.length-1;
       int n=0;
         
        while(n<a.length*a[0].length){
            for(int i=left;i<right;i++){
                number1=number2;
                number2=a[up][i];
                n++;
                if(number2<number1){
                    return 0;
                }
            }
            
            for(int i=up;i<down;i++){
                number1=number2;
                number2=a[i][right];
                n++;
                if(number2<number1){
                    return 0;
                }
            }
            
            for(int i=right;i>left;i--){
                number1=number2;
                number2=a[down][i];
                n++;
                if(number2<number1){
                    return 0;
                }
            }
            
            for(int i=down;i>up;i--){
                number1=number2;
                number2=a[i][left];
                n++;
                if(number2<number1){
                    return 0;
                }
            }
            right--;
            down--;
            left++;
            up++;
            
            }
            
            return 1;
    
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2014, 03:37
Ответы с готовыми решениями:

Проверить, является ли матрица, записанная в файле, магическим квадратом
Здравствуйте,помогите пожалуйста создать код на c++ который проверяет является ли матрица магическим квадратом или нет,но матрица должна...

Проверить последовательность на наличие в ней одинаковых чисел
С клавиатуры вводится произвольная последовательность чисел (например 1, 5, 200, 17....). Каждое число отделяется от предыдущего enter'ом....

Дана матрица А целых чисел размером 10 х 10 записанная по рядам в файле.
препад дал дал задание на прошлой неделе, мучалась мучалась так ничего толком и не сообразила по теме :( может кто поможет? ЗАДАНИЕ ...

2
46 / 36 / 15
Регистрация: 05.02.2014
Сообщений: 140
20.02.2014, 13:47
Обязательно ли нужно идти по спирали?
0
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 3
20.02.2014, 19:28  [ТС]
А как это можно проверить по другому?
Нужно определить, возрастают ли числа по спирали. Не важно, каким методом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.02.2014, 19:28
Помогаю со студенческими работами здесь

Возрастающая последовательность чисел
Здравствуйте! Компилировал код вроде работает, но нужен совет по задаче правильно оформлен ли код, а то есть сомнения? и Еще Массив...

Определить, возрастающая ли последовательность чисел
Program posled; uses crt; var i,n,x1,x2,f:integer; Begin clrscr; writeln('Введите количество членов...

Убывающая и возрастающая последовательность введенных чисел
Дано трехзначное число. Проверить истинность высказывания: «Цифры данного числа образуют возрастающую или убывающую последовательность». ...

Переписать в массив А2 весь массив А1, если в А1 найдется возрастающая последовательность не менее чем из 4 чисел
задать массив А1 с помощью генератора случайных чисел. Переписать в массив А2 весь массив А1, если в А1 найдется возрастающая...

Дана последовательность слов. Проверить правильно ли в ней записаны буквосочетания жи и ши.
Дана последовательность слов. Проверить правильно ли в ней записаны буквосочетания жи и ши. (на языке С++)


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru