最近在网上刷到一个视频,内容是奶奶有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