栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

每日一题:Day13

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

每日一题:Day13

1、HJ74 参数解析

import java.util.*;
public class Main {
 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
          int count=0;
         for(int i=0;i
             if(str.charAt(i)=='"'){
                 do{
                     i++;
                 }while(str.charAt(i)!='"');
             }
             if(str.charAt(i)==' '){
                 count++;
             }
         } 
         System.out.println(count+1);
         int flag=0;
     for(int i=0;i
         if(str.charAt(i)=='"'){
             flag=flag^1;

//从flog为1到flag为0(为1)这个时间段遍历字符串,都是在双引号里面,直接打印即可
         }
         if(str.charAt(i)!=' '&&str.charAt(i)!='"'){
             System.out.print(str.charAt(i));
         }
         if(str.charAt(i)==' '&&flag==1){
             System.out.print(str.charAt(i));
         }
         if(str.charAt(i)==' '&&flag==0){
             System.out.println();
         }
    }
}
}

2、WY28 跳石板

import java.util.*;
public class Main {
    public static ArrayList arr(int n){//n的约数
        ArrayList list=new ArrayList<>();
        for(int i=2;i*i<=n;i++){
            if(n%i==0){
               list.add(i); 
            if(n/i!=i){
                list.add(n/i);
            }
            }
        }
        return list;
    }
 public static void main(String[] args){
     Scanner sc=new Scanner(System.in);
     int n=sc.nextInt();
     int m=sc.nextInt();
     int[] tmp=new int[m+1];
     for(int i=0;i          tmp[i]=Integer.MAX_VALUE;
     }
     tmp[n]=0;//n石板跳到n石板需要跳0步
     for(int i=n;i
         if(tmp[i]==Integer.MAX_VALUE){
             continue;//跳不到的石板
         }
         //i代表的是石板号
         //j代码跳多少个石板
         ArrayList list=arr(i);
         for(int j:list){
         if(i+j<=m&&tmp[i+j]!=Integer.MAX_VALUE){//已经跳过了,并标记了当时跳到i+j编号的石板时需要多少步,即tmp[i+j]!=Integer.MAX_VALUE
          tmp[i+j]=Math.min(tmp[i]+1,tmp[i+j]);//这时就要比较已经有的数组值和i下标的数组值(跳到i石板需要的次数)加1的值,谁更小,取最小的,就是需要跳到i+j石板下次数最小
         }else if(i+j<=m){
             tmp[i+j]=tmp[i]+1;//没有改变数组值第一次跳到此处石板,直接把i下标的数组值+1
         }     
     }
     }
     if(tmp[m]==Integer.MAX_VALUE){
         System.out.println(-1);
     }else{
     System.out.println(tmp[m]);
     }
 }  
}

石板4跳到24的列子如下:

上面为数组下标,下面为可能数组的值(跳到该石板时要的次数),如4跳到6需要跳一次(一次跳两格)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/970248.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号