
参数解析,跳石板,计算日期到天数转换,幸运的袋子
发布日期:2021-05-14 17:06:03
浏览次数:17
分类:精选文章
本文共 3453 字,大约阅读时间需要 11 分钟。
题目:参数解析
题目描述
在命令行输入如下命令: xcopy /s c:\ d:\, 各个参数如下:
参数1:命令字xcopy 参数2:字符串/s 参数3:字符串c: 参数4: 字符串d: 请编写一个参数解析程序,实现将命令行各个参数解析出来。
解析规则:
1.参数分隔符为空格
2.对于用""包含起来的参数,如果中间有空格,不能解析为多个参数。比如在命令行输入xcopy /s “C:\program files” "d:“时,参数仍然是4个,第3个参数应该是字符串C:\program files,而不是C:\program,注意输出参数时,需要将”"去掉,引号不存在嵌套情况。 3.参数不定长 4.输入由用例保证,不会出现不符合要求的输入
输入描述:
输入一行字符串,可以有空格输出描述:
输出参数个数,分解后的参数,每个参数都独占一行import java.util.*;public class Main{ public static void main(String[] args){ Scanner scan=new Scanner(System.in); String str=scan.nextLine(); int count=0; for(int i=0;i
题目:跳石板
题目描述
小易来到了一条石板路前,每块石板上从1挨着编号为:1、2、3… 这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板,他想跳到编号恰好为M的石板去,小易想知道最少需要跳跃几次可以到达。 例如: N = 4,M = 24: 4->6->8->12->18->24 于是小易最少需要跳跃5次,就可以从4号石板跳到24号石板import java.util.*;public class Main{ public static void main(String[] args){ Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int m=scan.nextInt(); int[] step=new int[m+1]; for(int i=0;ilist=div(i); for(int j:list){ if(i+j<=m && step[i+j]!=Integer.MAX_VALUE){ step[i+j]=Math.min(step[i+j],step[i]+1); }else if(i+j<=m){ step[i+j]=step[i]+1; } } } if(step[m]==Integer.MAX_VALUE){ System.out.println(-1); }else{ System.out.println(step[m]); } } public static List div(int num){ List list=new ArrayList<>(); for(int i=2;i*i<=num;i++){ if(num%i==0){ list.add(i); if(num/i!=i){ list.add(num/i); } } } return list; }}
题目:计算日期到天数转换
题目:
根据输入的日期,计算是这一年的第几天。测试用例有多组,注意循环输入输入描述:
输入多行,每行空格分割,分别是年,月,日输出描述:
成功:返回输出计算后的第几天; 失败:返回-1import java.util.*;public class Main{ public static void main(String[] args){ Scanner scan=new Scanner(System.in); while(scan.hasNext()){ int y=scan.nextInt(); int m=scan.nextInt(); int d=scan.nextInt(); int sum=0; int[] day={ 31,59,90,120,151,181,212,243,273,304,334,365}; if(m>=2){ sum+=day[m-2]; } sum+=d; if(y%400==0 || y%4==0&&y%100!=0){ sum+=1; } System.out.println(sum); } }}
题目:幸运的袋子
题目描述
一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。 例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3 你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下你可以获得的多少种不同的幸运的袋子。 输入描述: 第一行输入一个正整数n(n ≤ 1000) 第二行为n个数正整数xi(xi ≤ 1000) 输出描述: 输出可以产生的幸运的袋子数
题解:
1.将袋子里面球的号码数排序 2.当一个号码和前面的号码无法组成幸运的袋子,那就直接break,因为后面的号码肯定比前面的数字大或等于,也无法构成幸运的袋子 3.当我们返回上层递归的时候,需要回溯,继续计算前面的号码和当前位置后面的号码是否可以构成幸运的袋子 回溯:sum减去当前号码,multi除以当前号码import java.util.*;public class Main{ public static void main(String[] args){ Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int[] a=new int[n]; for(int i=0;imutil){ count=count+1+count(a,n,i+1,sum,mutil); }else if(a[i]==1){ count=count+count(a,n,i+1,sum,mutil); }else{ break; } sum=sum-a[i]; mutil=mutil/a[i]; while(i
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年05月02日 16时08分44秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
喝红茶是否会上火
2021-05-14
Android进阶解密读书笔记2——第2章:Android系统启动——第1、2小节
2021-05-14
GreenDao之注解
2021-05-14
Android使用Font Awesome
2021-05-14
主线程中Looper的轮询死循环为何没有阻塞主线程?
2021-05-14
Gradle实战四:Jenkins持续集成
2021-05-14
使用RestTemplate,显示请求信息,响应信息
2021-05-14
wgcloud运维监控系统错误:防篡改校验错误次数大于10次,不再上报数据
2021-05-14
为什么WGCLOUD安装完后,启动服务端打不开网页
2021-05-14
wgcloud网络监控出现负值
2021-05-14
ios 官方sample
2021-05-14
iOS 开发官方文档链接收集
2021-05-14
网易云面试(Android岗)之旅,差点被这些基础题绊了跟头。
2021-05-14
Android音视频开发之——音频非压缩编码和压缩编码
2021-05-14
linux学习笔记(四)基本用户管理与帮助命令
2021-05-14
小程序:防止父方法被子方法冒泡,使用catchtap
2021-05-14
vue报错 created hook错误
2021-05-14
单选框点击文字也能选中
2021-05-14