Проверьте почему не работает правильно
2.1 Постановка задачі
ТЕРЕЗИ
Є терези і набір гир масою 1,3,9,27,…,3^(n-1)кг, причому кожна гиря в єдиному екземплярі. На ліву шальку терезів кладуть предмет масою m кг
(0 <=m<=3). Потрібно розподілити гирі на терезах так, щоб досягти балансу. Не обов 'язково використовувати всі гирі.
2.2 Задача на мові Free Pascal
Program Scles;
Cont
Weight:Array[0..19] of longint
=(1,3,9,27,81,243,729,2187,6561,19683,59049,
177147,531441,1594323,4782969,14348907,
43046721,129140163,387420489,1162261467);
Var m,n temp,i,j:longint;
d:Array[0..20] of -1..1;
begin
Assign(input,'Input.txt');
reset(Input);
Readln(m,n);
Close(Input);
temp:=m;
i:=1;
While temp>0 do
begin
D:=temp mod 3 ;
If D=2 then d:=-1;
temp:=(temp-D) div 3;
Inc(i)
end;
Assign(Output,'Output.txt');
Rewrite(Output);
Write(m);
Writeln;
Close(output);
end.
3.1 Опис вхідних і вихідних даних
Формат вхідних даних: у першому рядку файла lnput.txt — числа m і
n (n < 20) (цілі невід'ємні),розділені символом «пробіл».
Формат вихідних даних: у першому рядку файла Output.txt — число
m i маси гир на лівій шальці в порядку зростання. У другому рядку —
маси гир на правій шальці терезів у порядку зростання.
Приклад введення і виведення даних:
lnput.txt Output.txt
5 3 5 1 3
9
3.2 Етапи розробки програми
Домовимось укладання гир на ліву шальку кодувати
«-1», а на праву — «1». Невикористана гиря буде кодуватися нулем. Тоді
розв'язком задачі буде число m, переведене у так звану врівноважену
трійкову систему числення:
m = d[0]*1 + d[1]*3 + d[2]*З2 +... + d[k]*Зk, (1).
де кожен з коефіцієнтів d набуває одне з трьох значень -1, 0 або 1.
Відмінність від звичайної трійкової системи в тому, що в цій системі
замість цифр 0,1 і 2 використовуються цифри 0,1 і -1.
Розглянемо алгоритм запису числа m у зрівноваженій трійковій системі числення:
• знаходимо залишок від ділення числа m на 3;
• якщо залишок дорівнює 2, то заміняємо його на -1;
• зменшуємо m на щойно отриманий залишок і беремо цілу частину від ділення на 3 - нове значення m (у звичайній трійковій системі беремо тільки цілу частину від ділення m на 3);
• повторюємо ці дії, доки m > 0.
Очевидно, що цей процес скінченний. Залишається розподілити гирі на терезах: на ліву шальку терезів кладемо масу m і, відповідно, ті гирі, біля яких у співвідношенні (1) стоїть коефіцієнт -1, а на праву кладемо ті гирі
для яких відповідний коефіцієнт дорівнює 1. Відповідно гирі з коефіцієнтом 0 не використовуємо. Так, для наведеного в умові тесту матимемо співвідношення:
5= —1*1±1*3 + 1*32,
а для m = 10 наступне 10= 1*1 + 0*3 + 1*32.
2.1 Постановка задачі
ТЕРЕЗИ
Є терези і набір гир масою 1,3,9,27,…,3^(n-1)кг, причому кожна гиря в єдиному екземплярі. На ліву шальку терезів кладуть предмет масою m кг
(0 <=m<=3). Потрібно розподілити гирі на терезах так, щоб досягти балансу. Не обов 'язково використовувати всі гирі.
2.2 Задача на мові Free Pascal
Program Scles;
Cont
Weight:Array[0..19] of longint
=(1,3,9,27,81,243,729,2187,6561,19683,59049,
177147,531441,1594323,4782969,14348907,
43046721,129140163,387420489,1162261467);
Var m,n temp,i,j:longint;
d:Array[0..20] of -1..1;
begin
Assign(input,'Input.txt');
reset(Input);
Readln(m,n);
Close(Input);
temp:=m;
i:=1;
While temp>0 do
begin
D:=temp mod 3 ;
If D=2 then d:=-1;
temp:=(temp-D) div 3;
Inc(i)
end;
Assign(Output,'Output.txt');
Rewrite(Output);
Write(m);
Writeln;
Close(output);
end.
3.1 Опис вхідних і вихідних даних
Формат вхідних даних: у першому рядку файла lnput.txt — числа m і
n (n < 20) (цілі невід'ємні),розділені символом «пробіл».
Формат вихідних даних: у першому рядку файла Output.txt — число
m i маси гир на лівій шальці в порядку зростання. У другому рядку —
маси гир на правій шальці терезів у порядку зростання.
Приклад введення і виведення даних:
lnput.txt Output.txt
5 3 5 1 3
9
3.2 Етапи розробки програми
Домовимось укладання гир на ліву шальку кодувати
«-1», а на праву — «1». Невикористана гиря буде кодуватися нулем. Тоді
розв'язком задачі буде число m, переведене у так звану врівноважену
трійкову систему числення:
m = d[0]*1 + d[1]*3 + d[2]*З2 +... + d[k]*Зk, (1).
де кожен з коефіцієнтів d набуває одне з трьох значень -1, 0 або 1.
Відмінність від звичайної трійкової системи в тому, що в цій системі
замість цифр 0,1 і 2 використовуються цифри 0,1 і -1.
Розглянемо алгоритм запису числа m у зрівноваженій трійковій системі числення:
• знаходимо залишок від ділення числа m на 3;
• якщо залишок дорівнює 2, то заміняємо його на -1;
• зменшуємо m на щойно отриманий залишок і беремо цілу частину від ділення на 3 - нове значення m (у звичайній трійковій системі беремо тільки цілу частину від ділення m на 3);
• повторюємо ці дії, доки m > 0.
Очевидно, що цей процес скінченний. Залишається розподілити гирі на терезах: на ліву шальку терезів кладемо масу m і, відповідно, ті гирі, біля яких у співвідношенні (1) стоїть коефіцієнт -1, а на праву кладемо ті гирі
для яких відповідний коефіцієнт дорівнює 1. Відповідно гирі з коефіцієнтом 0 не використовуємо. Так, для наведеного в умові тесту матимемо співвідношення:
5= —1*1±1*3 + 1*32,
а для m = 10 наступне 10= 1*1 + 0*3 + 1*32.