Тут вообще есть программисты/математики? - Страница 3 - Архив - Strategium.ru Перейти к содержимому

Тут вообще есть программисты/математики?

Рекомендованные сообщения

Diplomate
Улитка ползёт по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползёт до вершины шеста?

Программа получает на вход натуральные числа h, a, b и должна вывести одно натуральное число. Гарантируется, что a>b.

При решении этой задачи нельзя пользоваться условной инструкцией if и циклами.

Задача не столько на программирование, сколько на умение составить правильную формулу. Мне необходимо решение этой задачи. Заведомо неверные решения не предлагать(h/(A-b}, к примеру). Если не понимаете, о чем тема — идите прочь и не разводите флуд. Интересно, есть ли тут хоть кто-нибудь, кто сможет решить даже эту "простую" задачу?

Изменено пользователем Diplomate
Ссылка на комментарий

Закреплённые сообщения
Diplomate
Нет, именно H - A

Смотри, допустим нам нужно проползти 10 метров, при этом мы ползем днем по 3 метра вверх, а ночью по 2 метра нас сносит вниз.

То есть H = 10, A = 3, B = 2.

Вот таким вверх/вниз мы будем ползти первые 7 метров, потому как как только мы окажемся на 7 метрах или выше - за последний день мы проползем 3 метра и окажемся у точки без необходимости ждать ночи когда нас снесет.

То есть первые (10-3)=7 метров мы ползем методом "вверх/вниз", а последние 3 метра преодолеваем за последний день методом "только вверх"

То есть 10(H) - 3(A) = 7 (H-A)

h:=h-b;

v:=a-b;

s:=round(h/v+0.499999).

Вот этот вариант работает. У нас просто разные понимания ситуации. :) Этот способ тоже понял. Большое спасибо за помощь. :)

Ну вот. Ты даже таких элементарных вещей не знаешь.

Лол. И ты считаешь, что ты разобрался? Мне тебя стало жаль.

a=3, b=2, h=1. У тебя улитка на нулевой день доползает

h=4, b=6, a=7. А тут вообще на минус первый

Разборался он

Слушай, ты меня уже утомил. Ты хоть сам понял, что написал? Улитка в землю что ли проваливается? Условием гарантировались корректные значения переменных.

Ссылка на комментарий

Isaac New
Условием гарантировались корректные значения переменных.

Условием гарантировалось, что a>b. Всё. Больше ничего в условии не было. Если бы ты умел читать - то увидел бы, что у меня в обоих случаях a>b. Уже по этой фразе видно, что ты ни капли не программист и ни одного нормального контеста (да что там контеста, ни одной нормальной задачи) у вас не было.

a=2, b=1, h=1 всё равно не подходит

Ссылка на комментарий

Diplomate
Условием гарантировалось, что a>b. Всё. Больше ничего в условии не было. Если бы ты умел читать - то увидел бы, что у меня в обоих случаях a>b. Уже по этой фразе видно, что ты ни капли не программист и ни одного нормального контеста (да что там контеста, ни одной нормальной задачи) у вас не было.

a=2, b=1, h=1 всё равно не подходит

Хорошо, извини, тут ты действительно прав. Решение Detech'а в этом случае тоже не работает. Но решение, которое ты усиленно продвигаешь, вообще выдает в этом случае ошибку.

Изменено пользователем Diplomate
Ссылка на комментарий

Isaac New
Хорошо, извини, тут ты действительно прав. Решение Detech'а в этом случае тоже не работает. Но решение, которое ты усиленно продвигаешь, вообще выдает в этом случае ошибку.

Какое решение? Где я взял неполное частное вместо того, чтобы округлять вверх?

x:=округлитьвверх(h - a)/(a - B); //столько дней улитка проползёт по склону и сползёт вниз. Я не помню, как округление вверх делается в паскале. Со школы его не включал

y:=(x+abs(x))div2; //это мы сейчас учли, что улитке это могло не понадобиться, и если h<a - то x мы приняли за нуль. Отсюда, кстати, растёт условие не использовать условные операторы. Как хорошо, что паскаль сам умеет считать модуль числа

z:=y+1;

И последний день, когда улитка доползает до вершины шеста

Вот такое решение я продвигал изначально с поправкой на то, что из-за того, что мне на тебя и задачку твою было наплевать - округление стояло вниз, а не вверх. А округление вниз в данной ситуации - это чистый div

Изменено пользователем Isaac New
Ссылка на комментарий

var

a, b, h: integer;

begin

readln( h, a, b );

writeln(ceil( ( h - a ) / ( a - b ) ) + 1);

end.

----------------------

Функция: Ceil;

Модуль: Math;

Синтаксис: function Ceil(const X: Extended):Integer;

Описание: Округляет аргумент (Х) до наименьшего целого, превышающего или равного ему.

Изменено пользователем MAK
Ссылка на комментарий

Freezze

Если не ошибаюсь, то округлить вверх в Паскале можно следующим выражением: trunc(res)+1

Функция Trunc возвращает целую часть от деления.

Изменено пользователем Freezze
Ссылка на комментарий

Если не ошибаюсь, то округлить вверх в Паскале можно следующим выражением: trunc(res)+1

Функция Trunc возвращает целую часть от деления.

Этот вариант не подходит, т.к. если улитка доползает за один день (то есть res = 1), то по этой формуле мы получим ответ = 2.

Ссылка на комментарий

Diplomate
var

a, b, h: integer;

begin

readln( h, a, b );

writeln(ceil( ( h - a ) / ( a - b ) ) + 1);

end.

----------------------

Функция: Ceil;

Модуль: Math;

Синтаксис: function Ceil(const X: Extended):Integer;

Описание: Округляет аргумент (Х) до наименьшего целого, превышающего или равного ему.

Это неверный вариант. У меня все точно так же, только без ceil. Он проходит все тесты, но вариант, предложенный Исааком, он не осиливает. Либо это недоработка тех, кто придумывал тесты к задаче, либо же предполагалось, что h>a.

Если не ошибаюсь, то округлить вверх в Паскале можно следующим выражением: trunc(res)+1

Функция Trunc возвращает целую часть от деления.

Нам нужно округлять вверх только дробные числа. Вариант detech'а(round(a+0.49999)) вполне работает.

Похоже, вариант Исаака самый работоспособный. Беру свои слова назад, спасибо на помощь. Непонятно, почему нельзя было помочь сразу, а нужно было разводить тут срач на несколько страниц про то, какой я дурак?

Изменено пользователем Diplomate
Ссылка на комментарий

Isaac New
Похоже, вариант Исаака самый работоспособный. Беру свои слова назад, спасибо на помощь. Непонятно, почему нельзя было помочь сразу, а нужно было разводить тут срач на несколько страниц про то, какой я дурак?

Я об этом написал с самого начала. Надо было попросить, а не потребовать. Когда приходит какой-то хрен с горы и начинает устанавливать свои порядки и что-то требовать - знаешь, очень хочется его послать по адресу

Ссылка на комментарий

Diplomate
Я об этом написал с самого начала. Надо было попросить, а не потребовать. Когда приходит какой-то хрен с горы и начинает устанавливать свои порядки и что-то требовать - знаешь, очень хочется его послать по адресу

Я хотел пресечь флуд и оффтоп, чтобы не приходили всякие Трусайты и не превращали тему в бардак.

Ссылка на комментарий

Isaac New
Я хотел пресечь флуд и оффтоп, чтобы не приходили всякие Трусайты и не превращали тему в бардак.

Запоминай слова: "Пожалуйста", "прошу", "без этих ваших подколов", "нашёл программу, но не могу правильно прочитать код", "не могли бы вы?"

Ссылка на комментарий

TrueSight

Инфи совсем уже поехал, это задача для 3 класса, программист хренов.

Я превратил тему в бардак.

Изменено пользователем TrueSight
Ссылка на комментарий

Diplomate
Инфи совсем уже поехал, это задача для 3 класса, программист хренов.

Я превратил тему в бардак.

Такие высказывания неудивительны для "Эксперта в вещах, о которых он слышит первый раз." На самом деле, мне на такую недалекую личность, как ты, абсолютно наплевать. Умные люди объяснили мне смысл работы программы, и я вполне доволен.

Изменено пользователем Diplomate
Ссылка на комментарий

TrueSight
Такие высказывания неудивительны для "Эксперта в вещах, о которых он слышит первый раз." На самом деле, мне на такую недалекую личность, как ты, абсолютно наплевать. Умные люди объяснили мне смысл работы программы, и я вполне доволен.

Но факт остается фактом, задачка из довольно простых, ты бы смог с ней справиться, если бы прилагал мозг, если, конечно, у тебя нет с ним проблем.

Ссылка на комментарий

Гость
Эта тема закрыта для публикации сообщений.
  • Ответы 53
  • Создано
  • Последний ответ
  • Просмотры 11944

Лучшие авторы в этой теме

  • Diplomate

    18

  • Isaac New

    14

  • Kronic

    4

  • йцукенгшщз

    3

  • Vladimir DP

    3

  • Detech

    2

  • MAK

    2

  • TrueSight

    2

  • MaslovRG

    1

  • Наполек

    1

  • xa6apuk

    1

  • Freezze

    1

  • Пися Камушкин

    1

  • Васильевич

    1

Лучшие авторы в этой теме

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу


Copyright © 2008-2024 Strategium.ru Powered by Invision Community

×
×
  • Создать...