php
1<?php
2
3$zaikoA = 1000;
4$zaikoB = 2000;
5if (intdiv($zaikoA, 2) > $zaikoB) {
6 $zaikoC = $zaikoB;
7} else {
8 $zaikoC = intdiv($zaikoA, 2);
9}
10echo $zaikoC;
で、とりあえず500が求まりますね。
構成する他の商品をそれぞれセット売り用にまとめる個数で割って、一番少ない数字を採用します。
ってことで、少し汎用性を広げてみると:
php
1<?php
2
3$goods = [
4 ['item' => 'A', 'stock' => 1000, 'requirement' => 2 ],
5 ['item' => 'B', 'stock' => 300, 'requirement' => 1 ],
6 ['item' => 'C', 'stock' => 5000, 'requirement' => 4 ],
7];
8echo min(array_map(function($arr) {
9 return intdiv($arr['stock'], $arr['requirement']);
10}, $goods));
(roundやめてintdivにしたら、気持ち処理時間も速まった。)
intdiv()はphp7以降の関数なので、
それ以前の処理系では floor($zaikoA / 2)
などとすること。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/05/23 10:10
退会済みユーザー
2018/05/23 10:30 編集
退会済みユーザー
2018/05/23 10:49
退会済みユーザー
2018/05/23 11:04