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

kolaghan

Всем доброго времени суток! Помогите, пожалуйста, с кодом для задач:
1) n детям подарили пакет с m конфетами. Всем должно достаться одинаковое количество конфет, иначе кто-то может расстроиться (остальные можно отдать взрослым).

Напишите функцию distributeCandies(int $m, int $n): int, результатом которой будет количество конфет, которое получит каждый ребенок.

2. Старьевщик отправляется на рынок в выходной день. В наличии у него имеются вазы массой m1 и ценой p1 каждая и подсвечники массой m2 и ценой p2 каждый. На ярмарку старьевщик может взять ограниченный набор товаров общей массой maxM. Требуется определить, сколько максимально он сможет заработать на продажах, если:

1)можно взять не более одного товара каждого типа?

2) можно брать сколько угодно товаров каждого типа?
Заранее, спасибо всем за помощь.

 

artoodetoo

покажи свои попытки.

мне кажется задачи скорее математические, чем на знание php. тем не менее функции должны быть рабочими ;)

 

kolaghan

Пока пытаюсь решить первую, не могу найти информацию о написании функций с или, для того, чтоб учесть нечетное количество конфет.
<?php
$n = 1; # вводим количество детей вместо 1
$m = 2; # вводим количество конфет вместо 2
function distributeCandies()
{
global $m, $n;
$m = $m / $n;
}
distributeCandies();
echo $m;
?>

 

kolaghan

public int distributeCandies(int m, int n) {
return Math.floor(m/n)
}

 

artoodetoo

Спасибо, чувак. Ты показал, что твои знания php примерно нулевые.

Официальная докуметация по php это твой главный источник знаний на этом этапе. https://www.php.net/manual/ru/
Не пытайся скопировать код из javascript в php, они очень разные.
Чтобы знать что происходит, надо обязательно читать текст ошибок. Для роста это ппц как важно — читать и понимать, а не бежать на форум за копи-пастой.
phpfaq.ru/debug

Пара подсказок:
Функция должна возвращать значение, а не «печатать» его. Поэтому результат должен быть в return. А уже потом в вызывающем коде ты можешь делать echo.

Точкой в php пользуются чтобы склеить строки, а не для того чтобы обратиться к методу какого-то объекта или пакета, как в других языках. В php для этого «стрелка» $object->method() и «пара двоеточий» class::method()

 

Dimon2x

PHP:
  1. <?php
  2.  
  3. //$n — количество детей;
  4. //$m — количество конфет в одном пакете;
  5.  
  6. function distributeCandies(int $m, int $n){
  7.     $res1 = floor($m/$n); //количество конфет, для каждого ребёнка;
  8.     $res2 = $m%$n; //остаток для взрослых;
  9.  
  10.     return [$res1, $res2];
  11. }
  12.  
  13. var_dump(distributeCandies(99, 5));
  14. var_dump(distributeCandies(100, 5));
  15. var_dump(distributeCandies(20, 5));
  16. var_dump(distributeCandies(20, 3));
 

artoodetoo

Оно вроде ничего, но floor() возвращает вещественное число. А нам надо целое.
Тем более нас просили вернуть не массив с дополнительной информацией, а только целое число конфет!

Матчасть про операции и там ссылка на целочисленное деление
https://www.php.net/manual/ru/language.operators.arithmetic

 

Edward-T

По второй задаче конкретнее условие изложи, мало конкретики.

PHP:
  1. function distributeCandies(int $m, int $n): int
  2. {
  3.     return ($m ($m % $n)) / $n;
  4. }
 

mkramer

Достаточно конкретики :) Там логически подумать надо.

 

Edward-T

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

 

mkramer

Что можно заработать только за один товар. Тут же не спрашивается, сколько какого товара взять. Спрашивается, сколько максимально можно заработать. Если в выделенный вес помещается только 1 ваза или 1 подсвечник, то просто вернуть наибольшую цену.
— Добавлено —
Если нифига не помещается в выделенную массу, то соотв. 0. Всё по логике из задачи вытекает.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *