题目1:购物单

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

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

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

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

取款机只能提供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%计算。

 

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

答案是一个整数,类似4300的样子,结尾必然是00,不要填写任何多余的内容。


思路:在这里用了重新分配输入流,输出流
System.setIn(new FileInputStrean("");
System.setOut(new PrintStream(new FileOntputStream("")))
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine){
}
import java.util.*;
import java.io.*;

public class dazhe {

	static double sum = 0;

	public static void main(String args[]) {
		try {
			System.setIn(new FileInputStream("E:/a.txt"));//重新分配标准输入流
			System.setOut(new PrintStream(new FileOutputStream("E:/b.txt")));
		} catch (Exception e) {
			System.err.println("Error Occurred.");//重新分配标准错误流
		}

		Scanner scan = new Scanner(System.in);
		String input;

		while (scan.hasNextLine()) {
			 input = scan.nextLine();
			int begin = input.indexOf(".");//索引下标从零0开始
			String a = input.substring(4, begin + 3);
			a = a.trim();
			String b = input.substring(begin + 3);
			b = b.trim();
			b = b.replace("折", "");
			b = b.replace("半价", "50");
			if (b.length() == 1)
				b = b + "0";
			System.out.println(a + "   " + b);
			sum = sum + Double.valueOf(a) * Integer.valueOf(b) * 0.01;
		}
		System.out.println(sum);

	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值