题目跳转
1.3275 骑车与走路
2.3388 分拣
3.3277 判断闰年
4.3273 被3,5,7整除
5.3271 输出绝对值
6.3268 等差数列的末项
7.3415 A+B V2
8.3429 条件输出5
public class 骑车与走路_3275{
public static void main(String[] args){
panduan();
}
public static void panduan(){
//首先是输入的问题
java.util.Scanner s=new java.util.Scanner(System.in);
int a=s.nextInt();
if((50+a/3.0)>a/1.2){
System.out.println("Walk");
}else if((50+a/3.0)<a/1.2){
System.out.println("Bike");
}else if((50+a/3.0)==a/1.2){
System.out.println("All");
}
}
}
3388 分拣
这次真的是给我写吐了,我不断的将我的代码改进,始终不能通过,最后参考了一下这位大神的代码发现我的问题,不是自身的代码,而是数据转换过多.就是说我最开是接收的数据为String类型,无法强转类型转换为int类型,所以就查了一些方法采用Integer.parseInt(String)
将类型进行转换,而每个循环都这样,相当于每一次都执行了一个----方法----,导致时间复杂度过高.下次注意
package java题库.nod51;
/*
工厂里有一些分拣物件的工作,其中一名工人的工作是将面前传送带上依次送来的n个物件按照物件上的标号
分别放到向左、向右两条传送带上,奇数的向左,偶数的向右。直到这一批物件分拣完,组长检查无误后打包装箱。
身为组长的小明自知责任重大,每次工人分拣完后他都会立即停下传送带,从工人左侧传送带的最左端开始核查物件的标号,直到
查到工人右侧传送带上最右端,以确认是否分拣正确。已知物件传送过来的顺序,小明希望你帮忙记录一个关于物件标号的数字序列,
表示他应当核查到物件的顺序,以便迅速完成工作。
输入:第一行输入一个数n,表示物件总数;第二行输入n个数,表示依次送来的n个物件上的标号。
输出:输出一行n个数,表示小明应核查到的正确的物件顺序,以空格隔开。
数据范围:对于100%的数据,1≤n≤100000,0≤物件标号≤10^9;
输入样例
6
1 2 3 4 5 6
输出样例
1 3 5 6 4 2
*/
//如果是python应该怎么做,让他输入得到一个列表,遇到奇数的输出,遇到偶数的入栈(就是个列表)
//等到把列表全部循环一遍,开始出栈
import java.util.*;
public class 分拣_3388{
public static void main(String[] args){
看了人家的代码做的修改();
}
public static void fenjian(){
//吐了提交运行超时,不过也该,写了两边循环
//用来接收输入
Scanner s=new Scanner(System.in);
//接收输入的n
System.out.print("请输入n");
int n=s.nextInt();
//接收输入的字符串,他们中间以空格隔开
System.out.print("请输入这n个数");
Scanner d=new Scanner(System.in);
String str=d.nextLine();
//使用split,以空格作为分割符,获得字符串数组
String[] strs=str.split(" ");
//这里采用第三种方法建立int类型数组(声明数组时指定元素个数然后赋值)
int[] nums=new int[n];
//开始for循环将变量放入数组中
//这个变量是用来记录偶数个数
int ou=0;
for(int a=0;a<n;a++){
//我想到了一个方法,记录偶数的个数
//在这个过程中将偶数放到一个新的数组中(但是你不知道这个数组的长度)
//但是一定小于n,所以你可以先放进去,之后再一个循环给他拿出来
//说实话挺蠢的,等我java学的好一点,一定要搞一个动态的和python的list
//一样的东西
int b=Integer.parseInt(strs[a]);
if(b%2!=0){
//奇数输出
System.out.printf("%d ",b);
}else{
nums[ou]=b;
ou+=1;
}
}
//再来个循环把偶数全部输出
for(int a=ou-1;a>=0;a--){
System.out.printf("%d ",nums[a]);
}
}
//我突然想到了一个好办法,一个从左往右跑输出奇数,一个从右往左跑输出偶数,一个循环就能把奇数偶数全部输出
//因为奇数一定要先输出完
//所以拿一个字符串变量,将他们拼接到一起
public static void fen_String(){
//运行还是超时,这个的时间复杂度应该是o(n)
//细算的话是o(2n),当然其实你只需要走路程的一半,这样所有的数其实都已经走过了