512 рыцарей собрались на турнир,
Чтоб самого достойного узнал волшебный мир,
Они сразились по двое и до исхода дня
Из каждой пары рыцарей один упал с коня.
И если будут рыцари все так же продолжать,
То сколько дней осталось им друг с другом воевать?
Другие языки программирования и технологии
Решите пожалуйста задачу в Паскале) Нестандартная)
var Days, Knights : Integer;
begin
Days := 0; Knights := 512;
while Knights > 1 do begin Knights := Knights shr 1; Inc(Days); end;
WriteLn('Days = ', Days);
end.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Это очень „стандартная“ программа начального уровня, в которой затрагиваются следующие темы:
— циклы
— системы счисления
begin
Days := 0; Knights := 512;
while Knights > 1 do begin Knights := Knights shr 1; Inc(Days); end;
WriteLn('Days = ', Days);
end.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Это очень „стандартная“ программа начального уровня, в которой затрагиваются следующие темы:
— циклы
— системы счисления
log2(512)=9
Собссно, вся задача. Непонятно, что тут нестандартного и зачем тут вообще нужен паскаль.
У Женьки последний рыцарь сражается сам с собой.
>Дайте ответ пожалуйста в виде кода программы
Офигеть. . .Ладно, изобретем:
writeln(Round(ln(512)/ln(2)));
Собссно, вся задача. Непонятно, что тут нестандартного и зачем тут вообще нужен паскаль.
У Женьки последний рыцарь сражается сам с собой.
>Дайте ответ пожалуйста в виде кода программы
Офигеть. . .Ладно, изобретем:
writeln(Round(ln(512)/ln(2)));
Программа стандартная, просто "оформление" вопроса пудрит "моск".
И сводится - в какую степень надо возвести 2, чтобы получить 512.
(учитывая что чел должен остаться один, но при этом считать надо сразу с половины от числа) .
А ответ 9. Т. к. в первом-же дне погибла половина (неправильно считать с 512 способом, которым считал Женёк)
Программа:
begin
WriteLn(ln(512)/ln(2));
end.
Вычисляем логаримф по основанию 2
Можно и циклом, но так прикольнее.
Можно и просто WriteLn('9');, но Вашему преподу точно такое не понравится =) А так - вполне законные и корректные вычисления.
И сводится - в какую степень надо возвести 2, чтобы получить 512.
(учитывая что чел должен остаться один, но при этом считать надо сразу с половины от числа) .
А ответ 9. Т. к. в первом-же дне погибла половина (неправильно считать с 512 способом, которым считал Женёк)
Программа:
begin
WriteLn(ln(512)/ln(2));
end.
Вычисляем логаримф по основанию 2
Можно и циклом, но так прикольнее.
Можно и просто WriteLn('9');, но Вашему преподу точно такое не понравится =) А так - вполне законные и корректные вычисления.
Бросай паскаль, учи java :D
public static void main(String[] args) {
int knights = 512;
int days;
for (days = 0; knights != 1; days++) {
knights = knights / 2;
}
System.out.println("Спустя " + days + " дней остался только один рыцарь. ");
}
public static void main(String[] args) {
int knights = 512;
int days;
for (days = 0; knights != 1; days++) {
knights = knights / 2;
}
System.out.println("Спустя " + days + " дней остался только один рыцарь. ");
}
Каждый день погибает половина рыцарей. Давай считать (думаю, что 9): 512-256-128-64-32-16-8-4-2-1. Ошибся - 10 дней.
Похожие вопросы
- РЕшите пожалуйста задачу на языке ПАСКАЛЬ:
- Удалить из строки все цифры. Как решить эту задачу в паскале??
- решите, пожалуйста, задачу на языке с с помощью циклов (for, while, do...while)
- Решите, пожалуйста задачу на С++
- Pascal. Помогите пожалуйста решить задачу в паскале !
- Помогите,пожалуйста,решить задачу в Паскале.
- Помогите решить задачи по Паскалю
- помогите решить задачу на паскале: напечатать "столбиком" значения sin2, sin3, ..sin 20.
- Помогите пожалуйста решить задачи по программированию. P.S: задачи по паскалю.
- Помогите, пожалуйста с задачей :( Сижу, туплю уже какой день, вообще не соображу - чтокуда. Задача на Паскале