Возникла другая проблема...код который я использую выдает не тот результат. Вот сам код:
Код:
int Merge(int *a, int start, int end)
{
int half=(start+end)/2, i;
for(i=0;i<=half;i++)
{
a[half+1+i]+=a[i];
a[half+1+i]=a[half+1+i] % 2;
}
return 0;
}
int Coefficients(int *a, int mStart, int mEnd)
{
if(mStart<mEnd)
{
Coefficients(a, mStart, (mStart+mEnd)/2);
Coefficients(a, (mStart+mEnd)/2+1, mEnd);
Merge(a, mStart, mEnd);
}
return 0;
}
Главная функция вызывает функцию Coefficients, задавая массив значений, начало и конец массива.
Я тестировал код на наборе "0110"=>получалось "0111" (должно было получится "0110")
на "0111"=>"0110" (должно было получится "0111")
на "11111111"=>"10000100" (должно было получится "10000000")
Можете подсказать где я ошибся?
Ps Алгоритм работает по принципу описанному в первом сообщении
-- 23.04.2014, 10:26 --Уже нашел ответ почему: цикл не с того элемента начинается