洛谷刷题P1424 小鱼的航程(改进版)

该博客主要展示了两段Java代码,第一段用于解决一个人从某一天开始连续游泳n天,每天除了周六周日外游250米的问题。第二段代码则是一个错误案例,原本目的是计算探测器逐步接近目标点的过程中,何时进入辐射范围,但实现逻辑有误。博客作者通过对比两种实现方式,探讨了循环控制和条件判断的运用。
摘要由CSDN通过智能技术生成

题目链接链接

import java.util.Scanner;
/**
 * @Author 陈平安
 * @Date 2022/5/1 14:16
 * @PackageName:PACKAGE_NAME
 * @ClassName: Main
 * @Description: TODO
 * @Version 1.0
 */
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int x = scanner.nextInt();//周几开始游泳
        int n = scanner.nextInt();//要求游几天
        int days = 0;//表示已经游了 几天
        int sum = 0;//表示已经游的距离
        for (int i = 0; i < n; i++) {//此处有话说,建议用for循环,我先前使用的是while循环,但是结果只有90分
            //所以个人建议,使用for,因为while循环需要多增变量,最重要的就是每次到周六周日的时候,天数怎么++
            //处理不好,可能一分都没有。
            if (x != 6 && x != 7) {
                sum += 250;
            }
            if (x == 7 ) {//周六不用管,没有符合周六的条件。天数自动加一,只有周日时候,满足x=1就行。
                x = 1;
            } else {
                x++;
            }

        }    System.out.println(sum);
    }
}

以下是本人错误案例

//错误案例:import java.util.Scanner;

     /**
      * @Author 陈平安
      * @Date 2022/5/1 14:16
      * @PackageName:PACKAGE_NAME
      * @ClassName: Main
      * @Description: TODO
      * @Version 1.0
      */
     public class Main {
         public static void main(String[] args) {
             Scanner scanner = new Scanner(System.in);
             double a = scanner.nextDouble();//探测器距离a点的距离
             double x = scanner.nextDouble();//探测器的辐射范围
             double mile = 7;//原始状态下行走的距离
             double sum = mile;//总共游泳的距离
             //int i = 0;//游标
             while (true) {
                 mile = mile * 0.98;
                 sum += mile;
                 if (a - x <= sum) {
                     sum -= mile;
                     mile /= 0.98;
                     break;
                 }
             }
             //  System.out.println(sum);
             //   System.out.println((int) mile+1);
           //  mile = (int) mile+1;
             //求出最后一步到达范围圈的距离
             //求倒数第二步 的距离;

             mile = mile * 0.98;
             sum += mile;
             if (sum >= x+a){
                 System.out.println("n");
                 return;
             }
             //  System.out.println(sum);

             mile = mile * 0.98;
             sum += mile;
             if (sum > x+a){
                 System.out.println("n");
                 //return;
             }else {
                 System.out.println("y");
             }


         }
     }

ending

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值