用主流编程语言解小学题

最近在网上刷到一个视频,内容是奶奶有60 元钱,去超市买了10元水果,收营员应该找奶奶多少钱?我一开始反应就是50元,后来想了想题干里没有说明这60元是怎么构成的,有可能是一张50元和一张10元,或者是3张20元等等可能。所以想要知道所有可能可以运用我们所学的编程语言了,下面我将用c语言,Java,Python,JavaScript等语言进行编写

1,c语言版

#include <stdio.h>

void findChange(int total_money, int fruit_cost) {
    int change = total_money - fruit_cost;

    printf("所有可能的找零方式:\n");

    for (int x = 0; x <= change / 50; x++) {
        for (int y = 0; y <= (change - x * 50) / 20; y++) {
            for (int z = 0; z <= (change - x * 50 - y * 20) / 10; z++) {
                for (int w = 0; w <= (change - x * 50 - y * 20 - z * 10) / 5; w++) {
                    int v = change - x * 50 - y * 20 - z * 10 - w * 5;

                    printf("50元纸币:%d张,20元纸币:%d张,10元纸币:%d张,5元纸币:%d张,1元硬币:%d个\n", x, y, z, w, v);
                }
            }
        }
    }
}

int main() {
    int total_money = 60;  // 奶奶的总钱数
    int fruit_cost = 10;   // 水果的价格

    findChange(total_money, fruit_cost);

    return 0;
}

这段代码使用嵌套循环来计算在给定总金额和商品价格的情况下,所有可能的找零方式。

只要传入合适的总金额和商品价格,代码将输出所有可能的找零方案,其中包括50元纸币、20元纸币、10元纸币、5元纸币和1元硬币的数量。

2,Java版

public class l1 {
    public static void findChange(int total_money, int fruit_cost) {
        int change = total_money - fruit_cost;

        System.out.println("所有可能的找零方式:");

        for (int x = 0; x <= change / 50; x++) {
            for (int y = 0; y <= (change - x * 50) / 20; y++) {
                for (int z = 0; z <= (change - x * 50 - y * 20) / 10; z++) {
                    for (int w = 0; w <= (change - x * 50 - y * 20 - z * 10) / 5; w++) {
                        int v = change - x * 50 - y * 20 - z * 10 - w * 5;
                        
                        System.out.printf("50元纸币:%d张,20元纸币:%d张,10元纸币:%d张,5元纸币:%d张,1元硬币:%d个\n", x, y, z, w, v);
                    }
                }
            }
        }
    }

    public static void main(String[] args) {
        int total_money = 60;  // 奶奶的总钱数
        int fruit_cost = 10;   // 水果的价格

        findChange(total_money, fruit_cost);
    }
}

这段Java代码和C代码相似,使用嵌套循环来计算找零方案。在findChange方法中,传入总金额和商品价格,在循环中计算并输出所有可能的找零方案。 

3,Python版

def find_change(total_money, fruit_cost):
    change = total_money - fruit_cost

    print("所有可能的找零方式:")

    for x in range(change // 50 + 1):
        for y in range((change - x * 50) // 20 + 1):
            for z in range((change - x * 50 - y * 20) // 10 + 1):
                for w in range((change - x * 50 - y * 20 - z * 10) // 5 + 1):
                    v = change - x * 50 - y * 20 - z * 10 - w * 5
                    print(f"50元纸币:{x}张,20元纸币:{y}张,10元纸币:{z}张,5元纸币:{w}张,1元硬币:{v}个")

total_money = 60   # 奶奶的总钱数
fruit_cost = 10    # 水果的价格

find_change(total_money, fruit_cost)

这段Python代码与C代码和Java代码类似,也使用嵌套循环来计算找零方案。在find_change函数中,传入总金额和商品价格,并用循环计算并输出所有可能的找零方案。

4,JavaScript版

<!DOCTYPE html>
<html>
<head>
  <title>找零计算器</title>
  <script>
    function findChange(totalMoney, fruitCost) {
      const change = totalMoney - fruitCost;
      
      console.log("所有可能的找零方式:");
      
      for (let x = 0; x <= Math.floor(change / 50); x++) {
        for (let y = 0; y <= Math.floor((change - x * 50) / 20); y++) {
          for (let z = 0; z <= Math.floor((change - x * 50 - y * 20) / 10); z++) {
            for (let w = 0; w <= Math.floor((change - x * 50 - y * 20 - z * 10) / 5); w++) {
              const v = change - x * 50 - y * 20 - z * 10 - w * 5;
              console.log(`50元纸币:${x}张,20元纸币:${y}张,10元纸币:${z}张,5元纸币:${w}张,1元硬币:${v}个`);
            }
          }
        }
      }
    }
    
    function calculate() {
      const totalMoney = parseInt(document.getElementById('total-money').value);
      const fruitCost = parseInt(document.getElementById('fruit-cost').value);
      
      findChange(totalMoney, fruitCost);
    }
  </script>
</head>
<body>
  <h1>找零计算器</h1>
  
  <label for="total-money">总钱数:</label>
  <input type="number" id="total-money"><br><br>
  
  <label for="fruit-cost">水果价格:</label>
  <input type="number" id="fruit-cost"><br><br>
  
  <button onclick="calculate()">计算找零</button>
</body>
</html>

这段HTML代码包含一个标题(<h1>元素)、两个输入框(通过<input>元素并分别设置了id属性),还有一个计算按钮(通过<button>元素并设置了onclick属性来调用JavaScript函数)。在JavaScript部分,定义了findChange函数来计算所有可能的找零方案,并定义了calculate函数来从输入框中获取值并调用找零函数。

在浏览器中打开该文件,就可以看到一个简单的找零计算器界面了。当你填写总钱数和水果价格,点击计算按钮时,会在浏览器的控制台中输出所有可能的找零方案。

四种编译运行结果如下:

所有可能的找零方式:
50元纸币:0张,20元纸币:0张,10元纸币:0张,5元纸币:0张,1元硬币:50个
50元纸币:0张,20元纸币:0张,10元纸币:0张,5元纸币:1张,1元硬币:45个
50元纸币:0张,20元纸币:0张,10元纸币:0张,5元纸币:2张,1元硬币:40个
50元纸币:0张,20元纸币:0张,10元纸币:0张,5元纸币:3张,1元硬币:35个
50元纸币:0张,20元纸币:0张,10元纸币:0张,5元纸币:4张,1元硬币:30个
50元纸币:0张,20元纸币:0张,10元纸币:0张,5元纸币:5张,1元硬币:25个
50元纸币:0张,20元纸币:0张,10元纸币:0张,5元纸币:6张,1元硬币:20个
50元纸币:0张,20元纸币:0张,10元纸币:0张,5元纸币:7张,1元硬币:15个
50元纸币:0张,20元纸币:0张,10元纸币:0张,5元纸币:8张,1元硬币:10个
50元纸币:0张,20元纸币:0张,10元纸币:0张,5元纸币:9张,1元硬币:5个
50元纸币:0张,20元纸币:0张,10元纸币:0张,5元纸币:10张,1元硬币:0个
50元纸币:0张,20元纸币:0张,10元纸币:1张,5元纸币:0张,1元硬币:40个
50元纸币:0张,20元纸币:0张,10元纸币:1张,5元纸币:1张,1元硬币:35个
50元纸币:0张,20元纸币:0张,10元纸币:1张,5元纸币:2张,1元硬币:30个
50元纸币:0张,20元纸币:0张,10元纸币:1张,5元纸币:3张,1元硬币:25个
50元纸币:0张,20元纸币:0张,10元纸币:1张,5元纸币:4张,1元硬币:20个
50元纸币:0张,20元纸币:0张,10元纸币:1张,5元纸币:5张,1元硬币:15个
50元纸币:0张,20元纸币:0张,10元纸币:1张,5元纸币:6张,1元硬币:10个
50元纸币:0张,20元纸币:0张,10元纸币:1张,5元纸币:7张,1元硬币:5个
50元纸币:0张,20元纸币:0张,10元纸币:1张,5元纸币:8张,1元硬币:0个
50元纸币:0张,20元纸币:0张,10元纸币:2张,5元纸币:0张,1元硬币:30个
50元纸币:0张,20元纸币:0张,10元纸币:2张,5元纸币:1张,1元硬币:25个
50元纸币:0张,20元纸币:0张,10元纸币:2张,5元纸币:2张,1元硬币:20个
50元纸币:0张,20元纸币:0张,10元纸币:2张,5元纸币:3张,1元硬币:15个
50元纸币:0张,20元纸币:0张,10元纸币:2张,5元纸币:4张,1元硬币:10个
50元纸币:0张,20元纸币:0张,10元纸币:2张,5元纸币:5张,1元硬币:5个
50元纸币:0张,20元纸币:0张,10元纸币:2张,5元纸币:6张,1元硬币:0个
50元纸币:0张,20元纸币:0张,10元纸币:3张,5元纸币:0张,1元硬币:20个
50元纸币:0张,20元纸币:0张,10元纸币:3张,5元纸币:1张,1元硬币:15个
50元纸币:0张,20元纸币:0张,10元纸币:3张,5元纸币:2张,1元硬币:10个
50元纸币:0张,20元纸币:0张,10元纸币:3张,5元纸币:3张,1元硬币:5个
50元纸币:0张,20元纸币:0张,10元纸币:3张,5元纸币:4张,1元硬币:0个
50元纸币:0张,20元纸币:0张,10元纸币:4张,5元纸币:0张,1元硬币:10个
50元纸币:0张,20元纸币:0张,10元纸币:4张,5元纸币:1张,1元硬币:5个
50元纸币:0张,20元纸币:0张,10元纸币:4张,5元纸币:2张,1元硬币:0个
50元纸币:0张,20元纸币:0张,10元纸币:5张,5元纸币:0张,1元硬币:0个
50元纸币:0张,20元纸币:1张,10元纸币:0张,5元纸币:0张,1元硬币:30个
50元纸币:0张,20元纸币:1张,10元纸币:0张,5元纸币:1张,1元硬币:25个
50元纸币:0张,20元纸币:1张,10元纸币:0张,5元纸币:2张,1元硬币:20个
50元纸币:0张,20元纸币:1张,10元纸币:0张,5元纸币:3张,1元硬币:15个
50元纸币:0张,20元纸币:1张,10元纸币:0张,5元纸币:4张,1元硬币:10个
50元纸币:0张,20元纸币:1张,10元纸币:0张,5元纸币:5张,1元硬币:5个
50元纸币:0张,20元纸币:1张,10元纸币:0张,5元纸币:6张,1元硬币:0个
50元纸币:0张,20元纸币:1张,10元纸币:1张,5元纸币:0张,1元硬币:20个
50元纸币:0张,20元纸币:1张,10元纸币:1张,5元纸币:1张,1元硬币:15个
50元纸币:0张,20元纸币:1张,10元纸币:1张,5元纸币:2张,1元硬币:10个
50元纸币:0张,20元纸币:1张,10元纸币:1张,5元纸币:3张,1元硬币:5个
50元纸币:0张,20元纸币:1张,10元纸币:1张,5元纸币:4张,1元硬币:0个
50元纸币:0张,20元纸币:1张,10元纸币:2张,5元纸币:0张,1元硬币:10个
50元纸币:0张,20元纸币:1张,10元纸币:2张,5元纸币:1张,1元硬币:5个
50元纸币:0张,20元纸币:1张,10元纸币:2张,5元纸币:2张,1元硬币:0个
50元纸币:0张,20元纸币:1张,10元纸币:3张,5元纸币:0张,1元硬币:0个
50元纸币:0张,20元纸币:2张,10元纸币:0张,5元纸币:0张,1元硬币:10个
50元纸币:0张,20元纸币:2张,10元纸币:0张,5元纸币:1张,1元硬币:5个
50元纸币:0张,20元纸币:2张,10元纸币:0张,5元纸币:2张,1元硬币:0个
50元纸币:0张,20元纸币:2张,10元纸币:1张,5元纸币:0张,1元硬币:0个
50元纸币:1张,20元纸币:0张,10元纸币:0张,5元纸币:0张,1元硬币:0个

进程已结束,退出代码0
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员老李头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值