9.07.2011 / 23:25 | |
dejqitz Пользователь Сейчас: Offline
Имя: Александр Откуда: Ростов на Дону Регистрация: 01.08.2010
| XakepPRO, ответ от компилятора:Free Pascal Compiler version 2.4.0-2 [2010/03/06] for i386 Copyright (c) 1993-2009 by Florian Klaempfl Target OS: Linux for i386 Compiling ./new.pas new.pas(2,15) Fatal: Syntax error, ";" expected but ":" found Fatal: Compilation aborted Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
|
9.07.2011 / 23:25 | |
XakepPRO Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| Да, я тупарнул. Как раз хотел написать -=n; Сцуко, я раньше уже решал эту гребаную считалку, забыл всё нафиг. Помню, что не нужно забывать о том, что м может быть больше человеков. Фак. Придется проснуться.
|
9.07.2011 / 23:26 | |
dejqitz Пользователь Сейчас: Offline
Имя: Александр Откуда: Ростов на Дону Регистрация: 01.08.2010
| мне нужен рабочий код, без ошибок!
|
9.07.2011 / 23:44 | |
XakepPRO Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| dejqitz (09.07.2011/23:26) мне нужен рабочий код, без ошибок!Ну тогда жди завтра, чтобы я за комп сел. На телефоне какбэ не очень удобно. Ладно, мой моск щас способен лишь на ржач и на туп... Поэтому я, скорее всего спать. Завтра напишу и выложу. А ты напиши ка мне заполнение двумерного массива по спирали Витя, |
10.07.2011 / 00:02 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Да, ночью голова не работает и уж тем более после трехдневных поездок. А вообще надо заняться программированием а не Minecraft'ом, а то мозги сохнут.
__________________
let live |
10.07.2011 / 14:54 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Вот моё решение этой задачи. Изначально писал на C++, но понял, что далеко на нём не укачу, перешел на C#. Основной метод решения: Открыть спойлер Закрыть спойлер /**
* Основной расчет последовательности
* @param n количество людей
* @param m количество слогов в считалке
* @return строковая последовательность чисел
*/
private string getSequence(int n, int m)
{
StringBuilder sb = new StringBuilder();
List<int> input = new List<int>();
// записываем всю последовательность 1..n в массив
for (int i = 1; i <= n; i++)
{
input.Add(i);
}
//начинаем вычислять
int index = 0;
while (input.Count > 0)
{
index += m;
// нормализация индекса, чтоб не выходил за пределы массива
while (index > input.Count) index = index - input.Count;
// нормализация значений (отсчет с 1, а не с 0)
index--;
sb.Append(input[index]).Append(", ");
input.RemoveAt(index);
}
// удаляем последнюю запятую, для красоты
sb.Remove(sb.Length - 2, 1);
return sb.ToString();
}
Вот exe'шник __________________
let live Изменено aNNiMON (10.07 / 14:57) (всего 5 раз)
Прикрепленные файлы: Rhymer.exe (10.5 кб.) Скачано 593 раза |
10.07.2011 / 19:36 | |
dejqitz Пользователь Сейчас: Offline
Имя: Александр Откуда: Ростов на Дону Регистрация: 01.08.2010
| aNNiMON, вссе проверил безусловно работает Сейчас попробую откапать мой код на C++; |
10.07.2011 / 20:23 | |
dejqitz Пользователь Сейчас: Offline
Имя: Александр Откуда: Ростов на Дону Регистрация: 01.08.2010
| Хух нашел . Посмотрел - то еще быдлокод Открыть спойлер Закрыть спойлер #include <iostream>
#include <vector>
using namespace std;
vector<int> data;
int n, m;
void math(int t)
{
if(t < data.size())
{
cout << data[t];
if(data.size() > 2)
{
cout << ',';
}
data.erase(data.begin() + t);
//
math(t + m -1);
}
else
{
if( data.size() > 1)
{
math(t - data.size() +1);
}
}
}
int main()
{
cout << "Words: ";
cin >> m;
cout << "People: ";
cin >> n;
data.push_back(n);
for(int i = 1; i<= n; i++ )
{
data.push_back(i);
}
math(m);
cout << endl;
}
Изменено dejqitz (10.07 / 20:24) (всего 1 раз) |
11.07.2011 / 00:23 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| dejqitz, о, теперь я знаю как векторы в C++ юзать спасибо) __________________
let live |
11.07.2011 / 07:25 | |
dejqitz Пользователь Сейчас: Offline
Имя: Александр Откуда: Ростов на Дону Регистрация: 01.08.2010
| aNNiMON, Страуструп тебе в помощь!
|