6.01.2011 / 17:43 | |
XakepPRO Пользователь
| Хмм.. Еще одна интересная, теперь уже простая задача.
Задана строка символов. Среди литер этого текста особую роль играет знак #, появление которого означает отмену предыдущей литеры текста; k знаков отменяют k предыдущих литер (если такие есть). Напечатать строку с учетом роли знака #. Например, строка "VR#Y##HELO#LO" должна быть напечатана в виде: ''HELLO''. Если программа будет написана до 6 часов утра завтрашнего дня, даю 100 монет, иначе 50. Если же сроки и будут нарушены, но программа пройдет все тесты (на краевые условия в том числе), даю 120.
|
6.01.2011 / 17:48 | |
Freddy Пользователь Сейчас: Offline
Имя: Игорь Откуда: Воронеж Регистрация: 30.01.2010
| #include <stdlib.h>
#include <stdio.h>
int n;
int main(int argc, char** argv) {
if(argc<2) {
printf("no actual parameter\n");
return 1;
}
n = atoi(argv[1]);
int matrix[n][n];
int i,j,a=n/2;
int number=1;
for(j=1;j<=a;j++) {
for (i=j-1;i<n-j+1;i++) matrix[i][j-1]=number++;
for (i=j;i<n-j+1;i++) matrix[n-j][i]=number++;
for (i=n-j-1;i>=j-1;i--) matrix[i][n-j]=number++;
for (i=n-j-1;i>=j;i--) matrix[j-1][i]=number++;
}
if(n%2==1) matrix[a][a]=n*n;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
printf("%i ",matrix[i][j]);
printf("\n");
return 0;
}
|
6.01.2011 / 17:58 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| XakepPRO (06.01.2011/17:43) Хмм.. Еще одна интересная, теперь уже простая задача.Задана строка символов. Среди литер этого текста особую роль играет знак #, появление которого означает отмену предыдущей литеры текста; k знаков оЭто уж совсем просто, достаточно статьи о использовании векторов от анима в микростатьях и чуть чуть добавить кода, т.е. конкатенировать все строки массива.Все, давай деньги))) |
6.01.2011 / 18:00 | |
XakepPRO Пользователь
| Пиши код программы. Желательно на бейсик/паскаль. |
6.01.2011 / 18:01 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| XakepPRO, Не, паскаль и бэйсик не для меня, особенно бэйсик. |
6.01.2011 / 18:14 | |
XakepPRO Пользователь
| Ну тогда на яве. Аннимон проверит)
|
6.01.2011 / 18:19 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| XakepPRO, а я уже написал) на словах, думаю их достаточно) |
6.01.2011 / 18:52 | |
XakepPRO Пользователь
| kiriman (06.01.2011/17:58) Это уж совсем просто, достаточно статьи о использовании векторов от анима в микростатьях..Это еще какие? Чуть выше твоего поста, я так понял - заполнение массива по спирали? [b]Конкатенция[/b] (сцеплние) — операция склеивания
объектов линейной структуры, обычно строк. Например,
конкатенация слов «микро» и «мир» даст слово «микромир».
[b]В информатике[/b]
Операция конкатенации определяется для типов данных,
имеющих структуру последовательности (список, очередь,
массив и ряд других). В общем случае, результатом
конкатенации двух объектов и является объект,
полученный поочерёдным добавлением всех
элементов объекта, начиная с первого, в конец
объекта.
Изменено XakepPRO (6.01 / 18:54) (всего 2 раза) |
6.01.2011 / 18:54 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| XakepPRO, про спираль ненаю, не мой пост.Гг
|
6.01.2011 / 21:37 | |
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 раз) |