算法 — 购物单

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。

这不,大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。

小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。

现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。

取款机只能提供 100 元面额的纸币。小明想尽可能少取些现金,够用就行了。 你的任务是计算出,小明最少需要取多少现金。

以下是让人头疼的购物单,为了保护隐私,物品名称被隐藏了。

**** 180.90 88折

**** 10.25 65折

**** 56.14 9折

**** 104.65 9折

**** 100.30 88折

**** 297.15 半价

**** 26.75 65折

**** 130.62 半价

**** 240.28 58折

**** 270.62 8折

**** 115.87 88折

**** 247.34 95折

**** 73.21 9折

**** 101.00 半价

**** 79.54 半价

**** 278.44 7折

**** 199.26 半价

**** 12.97 9折

**** 166.30 78折

**** 125.50 58折

**** 84.98 9折

**** 113.35 68折

**** 166.57 半价

**** 42.56 9折

**** 81.90 95折

**** 131.78 8折

**** 255.89 78折

**** 109.17 9折

**** 146.69 68折

**** 139.33 65折

**** 141.16 78折

**** 154.74 8折

**** 59.42 8折

**** 85.44 68折

**** 293.70 88折

**** 261.79 65折

**** 11.30 88折

**** 268.27 58折

**** 128.29 88折

**** 251.03 8折

**** 208.39 75折

**** 128.88 75折

**** 62.06 9折

**** 225.87 75折

**** 12.89 75折

**** 34.28 75折

**** 62.16 58折

**** 129.12 半价

**** 218.37 半价

**** 289.69 8折

需要说明的是,88 折指的是按标价的 88% 计算,而 8 折是按 80% 计算,余者类推。 特别地,半价是按 50% 计算。

请输出小明要从取款机上提取的金额,单位是元。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

解题思路;

        这道题较为简单,是一道答案填空题,参赛选手无需考虑自己的程序是否高效简洁,能得出最终正确答案即可。在这道题中只需要两个数组进行存储原价和折扣数据并进行遍历计算即可。该算法的 Java 代码实现如下,同时也为了读者方便测试,这里将使用的测试数据格式也粘贴如下:

public class Main{
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		float[] unitPrice = new float[50];
		int[] discount = new int[50];
		int i;
		float sum = 0;
		for (i = 0; i < 50; i++) {
			unitPrice[i] = scan.nextFloat();
			discount[i] = scan.nextInt();
		}
		for (i = 0; i < 50; i++) {
			sum += unitPrice[i] * (discount[i] / 100.0);
		}
		System.out.println(sum);
		scan.close();
	}
}

180.90
88
10.25
65
56.14
90
104.65
90
100.30
88
297.15
50
26.75
65
130.62
50
240.28
58
270.62
80
115.87
88
247.34
95
73.21
90
101.00
50
79.54
50
278.44
70
199.26
50
12.97
90
166.30
78
125.50
58
84.98
90
113.35
68
166.57
50
42.56
90
81.90
95
131.78
80
255.89
78
109.17
90
146.69
68
139.33
65
141.16
78
154.74
80
59.42
80
85.44
68
293.70
88
261.79
65
11.30
88
268.27
58
128.29
88
251.03
80
208.39
75
128.88
75
62.06
90
225.87
75
12.89
75
34.28
75
62.16
58
129.12
50
218.37
50
289.69
80

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值