You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现预算约束下食品组合枚举功能的代码修正

PHP 食品采购预算可行组合枚举实现

基础规则确认

三类食品的包装、定价与输出对应关系如下:

  • Worst(输出标识为worsten):单包售价5欧元,每包6个
  • Hamburgers:单包售价10欧元,每包20个
  • Frikandellen:单包售价15欧元,每包25个

实现逻辑

  1. 通过readline()接收用户输入的采购预算,先做合法性校验,过滤非正整数的无效输入
  2. 分别计算单类商品在预算范围内可购买的最大包数,通过三层循环遍历所有可能的包数组合
  3. 逐组计算总采购成本,仅保留成本与预算完全匹配的可行方案
  4. 按购买包数换算每类食品的总个数,按要求的格式输出结果

修正后可直接运行的代码

<?php
// 读取用户输入的预算
$budgetInput = readline("请输入采购总预算(单位:欧元):");
$totalBudget = (int)$budgetInput;
if ($totalBudget <= 0) {
    exit("错误:预算必须为大于0的正整数\n");
}

// 商品配置:单包价格、每包个数
$config = [
    'worsten' => ['pack_price' => 5, 'pack_count' => 6],
    'hamburgers' => ['pack_price' => 10, 'pack_count' => 20],
    'frikandellen' => ['pack_price' => 15, 'pack_count' => 25]
];

// 计算单类商品最大可购买包数
$maxWorstPack = intdiv($totalBudget, $config['worsten']['pack_price']);
$maxHamburgerPack = intdiv($totalBudget, $config['hamburgers']['pack_price']);
$maxFrikandelPack = intdiv($totalBudget, $config['frikandellen']['pack_price']);

echo "预算{$totalBudget}欧元下的所有可行采购方案:\n";
// 遍历所有组合
for ($w = 0; $w <= $maxWorstPack; $w++) {
    for ($h = 0; $h <= $maxHamburgerPack; $h++) {
        for ($f = 0; $f <= $maxFrikandelPack; $f++) {
            $currentCost = $w * $config['worsten']['pack_price']
                          + $h * $config['hamburgers']['pack_price']
                          + $f * $config['frikandellen']['pack_price'];
            // 成本匹配预算时计算总个数并输出
            if ($currentCost == $totalBudget) {
                $worstTotal = $w * $config['worsten']['pack_count'];
                $hamburgerTotal = $h * $config['hamburgers']['pack_count'];
                $frikandelTotal = $f * $config['frikandellen']['pack_count'];
                echo "• {$worstTotal} worsten, {$hamburgerTotal} hamburgers, {$frikandelTotal} frikandellen\n";
            }
        }
    }
}
?>

运行说明

  • 脚本在CLI模式下运行,输入预算数值后会自动输出所有符合要求的组合
  • 遍历从0包开始计数,支持某类食品不购买的场景
  • 采用整数除法计算最大购买包数,避免浮点数运算导致的判断误差
  • 如果需要支持预算有剩余的场景,把成本判断条件的==改成<=即可

内容的提问来源于stack exchange,提问作者Faiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 03:24:31