Java实现 洛谷 P1001 A+B Problem P1421 小玉买文具 P1425 小鱼的游泳时间

写在前面

第一次正经做算法题,先讲一下洛谷新手村-洛谷第一个任务 P1001A+B Problem、P1421小玉买文具、P1425小鱼的游泳时间这三个题的做题心得。
这三个题核心解题思路比较简单,具体解析就不做赘述(新手的我都很容易想到),归纳总结一下这三个题,主要学习三个做算法题的知识点。以下三点在下文中具体说明。
  • 知识点一:算法题基本代码格式
  • 知识点二:接受单行两个输入数据
  • 知识点三:浮点数向下取整

P1001 A+B Problem

在这里插入图片描述

解题前思考:
  1. List item.第一次正经做洛谷的算法题,先了解了一下基本代码要求。
    (1)定义的主类必须是Main
    (2)import 导入的包必须自己手写打上。(想想IDE真香)
  2. 接受一个数据用Scanner类,我会!!如何接收这同一行两个参数??难道是接收以后在用空格隔离开??难搞哦!!
自己解法:

null

解析:

null

借鉴解答:
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int a=sc.nextInt(),b=sc.nextInt();
		System.out.println(a+b);		
	}
}
分析:
  1. 如何接受同一行,空格隔开的两个数?
    原来是自己nextInt()方法没有学明白,查阅博客,通俗点来说,第一个nextInt()方法就是读取整型数据,一次读一个,读第一个数,第二个nestInt()方法就指向下一个数,就读取到了第二个数。
扩展阅读:

Java中Scanner的用法:单行/多行输入


p1421 小玉买文具

在这里插入图片描述

解题前思考:
  1. 这个题核心就是用班主任给小玉的钱数除以一直签字笔的单价。问题来了,可能有除不开的情况,这里就需要向下取整。
  2. 这里涉及到小数,参数用double类型。
自己解法:(一次通过666)
import java.util.Scanner;
public class Demo02 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int a=scan.nextInt(),b=scan.nextInt();
		double money=a+b*0.1;
		double price=1.9;
		System.out.println((int)Math.floor(money/price));
	}
}
解析:
  1. Math.floor()方法就是计算结果,向下取整, 求一个最接近它的整数,它的值肯定会小于或等于这个浮点数。注意这个方法里面的参数是浮点数,而且返回的结果也是浮点数,但是题目要求输出一个整数,所以要强转一下,注意一下细节。

P1425 小鱼的游泳时间

在这里插入图片描述

解题前思考:
  1. 这个问题的核心数学运算应该怎么算,找一下规律,发现有两种情况
    (1)当开始的时间的分这个数小于等于结束时间的分,例如开始时间:12时15分,结束时间:17时57分,这种情况可以分别相减求出总共游泳的时间。
    (2)当开始的时间的分这个数大于结束时间的分,例如开始时间:12时35分,结束时间:17时12分,这种情况时位和分位都需要处理一下,如代码中处理方式。

  2. 注意输出格式,细节!!

import java.util.Scanner;
public class Demo3 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		int a = scan.nextInt();
		int b = scan.nextInt();
		int c = scan.nextInt();
		int d = scan.nextInt();
		int e, f;
		if (b > d) {
			f = 60 - b + d;
			e = c - a-1;
		} else {
			f = d - b;
			e = c - a;
		}
		System.out.println(e+" "+f);
	}
}
解析:

null


总结

借洛谷的话:任何一个伟大的思想,都有一个微不足道的开始。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值