Вниз  Разбор интересных задач
- 6.01.2011 / 17:43copy  #42819
XakepPRO
  Пользователь удален

XakepPRO 
Хмм.. Еще одна интересная, теперь уже простая задача.

Задана строка символов. Среди литер этого текста особую роль играет знак #, появление которого означает отмену предыдущей литеры текста; k знаков отменяют k предыдущих литер (если такие есть). Напечатать строку с учетом роли знака #. Например, строка "VR#Y##HELO#LO" должна быть напечатана в виде: ''HELLO''.
 
Если программа будет написана до 6 часов утра завтрашнего дня, даю 100 монет, иначе 50. Если же сроки и будут нарушены, но программа пройдет все тесты (на краевые условия в том числе), даю 120.
- 6.01.2011 / 17:48copy  #42820
Freddy
  Пользователь

Freddy 
Сейчас: Offline
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. int n;
  4.  
  5. int main(int argc, char** argv) {
  6.     if(argc<2) {
  7.     printf("no actual parameter\n");
  8.     return 1;
  9.     }
  10.     n = atoi(argv[1]);
  11.     int matrix[n][n];
  12.     int i,j,a=n/2;
  13.     int number=1;
  14.     for(j=1;j<=a;j++) {
  15.     for (i=j-1;i<n-j+1;i++) matrix[i][j-1]=number++;
  16.     for (i=j;i<n-j+1;i++) matrix[n-j][i]=number++;
  17.     for (i=n-j-1;i>=j-1;i--) matrix[i][n-j]=number++;
  18.     for (i=n-j-1;i>=j;i--) matrix[j-1][i]=number++;
  19.     }
  20.     if(n%2==1) matrix[a][a]=n*n;
  21.     for(int i=0;i<n;i++)
  22.     for(int j=0;j<n;j++)
  23.         printf("%i ",matrix[i][j]);
  24.     printf("\n");
  25.     return 0;
  26. }

- 6.01.2011 / 17:58copy  #42821
kiriman
  Пользователь

kiriman 
Сейчас: Offline
XakepPRO (06.01.2011/17:43)
Хмм.. Еще одна интересная, теперь уже простая задача.Задана строка символов. Среди литер этого текста особую роль играет знак #, появление которого означает отмену предыдущей литеры текста; k знаков о
Это уж совсем просто, достаточно статьи о использовании векторов от анима в микростатьях и чуть чуть добавить кода, т.е. конкатенировать все строки массива.Все, давай деньги))) :-D
- 6.01.2011 / 18:00copy  #42822
XakepPRO
  Пользователь удален

XakepPRO 
Пиши код программы. Желательно на бейсик/паскаль. :)
- 6.01.2011 / 18:01copy  #42823
kiriman
  Пользователь

kiriman 
Сейчас: Offline
XakepPRO, Не, паскаль и бэйсик не для меня, особенно бэйсик. :hack:
- 6.01.2011 / 18:14copy  #42824
XakepPRO
  Пользователь удален

XakepPRO 
Ну тогда на яве. Аннимон проверит)
- 6.01.2011 / 18:19copy  #42825
kiriman
  Пользователь

kiriman 
Сейчас: Offline
XakepPRO, а я уже написал)
на словах, думаю их достаточно) :hack:
- 6.01.2011 / 18:52copy  #42831
XakepPRO
  Пользователь удален

XakepPRO 
kiriman (06.01.2011/17:58)
Это уж совсем просто, достаточно статьи о использовании векторов от анима в микростатьях..
Это еще какие? Чуть выше твоего поста, я так понял - заполнение массива по спирали?

  1. [b]Конкатенция[/b] (сцеплние) — операция склеивания
  2.  объектов линейной структуры, обычно строк. Например,
  3.  конкатенация слов «микро» и «мир» даст слово «микромир».
  4.  
  5. [b]В информатике[/b]
  6.      Операция конкатенации определяется для типов данных,
  7.  имеющих структуру последовательности (список, очередь,
  8.  массив и ряд других). В общем случае, результатом
  9.  конкатенации двух объектов  и  является объект,
  10.  полученный поочерёдным добавлением всех
  11.  элементов объекта, начиная с первого, в конец
  12.  объекта.


Изменено XakepPRO (6.01 / 18:54) (всего 2 раза)
- 6.01.2011 / 18:54copy  #42832
kiriman
  Пользователь

kiriman 
Сейчас: Offline
XakepPRO, про спираль ненаю, не мой пост.Гг
- 6.01.2011 / 21:37copy  #42842
XakepPRO
  Пользователь удален

XakepPRO 
И так, не могу больше терпеть, поэтому напишу устное решение задачи с некоторыми участками кода.

Давайте посмотрим на наш числовой ряд:

Закономерность чисел от 1 до N*N.
Например, N=4:
1 12 11 10 2 13 16 9 3 14 15 8 4 5 6 7

Не зря я сказал N*N. N=4.
Не трудно догадаться, что из данного числого ряда можно сделать квадрат, со стороной равной N (здесь 4-ём). Строим матрицу (двухмерный массив, у которого стороны равны):

1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7

Матрица заполнена по спирали. Алгоритм заполнения массива таким методом является достаточно трудным. Пишу на двух языках Basic/Pascal, т.к. другие не очень хорошо знаю (на java вам напишит аннимон, я надеюсь)

Изменено XakepPRO (6.01 / 21:42) (всего 1 раз)
Наверх  Всего сообщений: 751
Фильтровать сообщения
Поиск по теме
Файлы топика (34)
Поиск по форуму
Новые вверху