搜狐两道题AC,不过用的方法比较蠢


1、搜狐第一题

import java.util.Scanner;

import java.util.ArrayList;

public class Main{

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

int n = scanner.nextInt();

int m = scanner.nextInt();

int[] a = new int[m];

for(int i=0;i<m;i++){

a[i]=scanner.nextInt();

}

ArrayList<Integer> list = new ArrayList<>();

for(int i=0;i<a[0];i++){

list.add(a[0]);

}

int count=1;

if(list.size()==1){

for(int i=0;i<a[1];i++){

list.add(a[1]);

}

count=2;

}

while(list.size()<n){

int time = list.get(count);

for(int i=0;i<time;i++){

list.add(a[count%m]);

}

count++;

}

for(int i=0;i<n;i++){

System.out.println(list.get(i));

}

}

}

2、搜狐第二题(这是本地编译器里的原始版本,后来提交的时候还改过,不知道能不能AC了。。。)

import java.util.Scanner;

public class Main{

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

boolean flag = true;

while(flag){

flag=false;

int[] num = new int[6];

for(int i=0;i<6;i++){

num[i]=scanner.nextInt();

}

for(int i=0;i<6;i++){

if(num[i]!=0){

flag=true;

break;

}

}

int totle = num[5]+num[4]+num[3];

if(num[2]%4==0) totle = totle+num[2]/4;

else totle = totle+num[2]/4+1;

int stay3 = 4-num[3]%4;

int take2 = 0;

if(stay3==1) take2=1;

if(stay3==2) take2=3;

if(stay3==3) take2=5;

int stay2 = num[1]-5*num[3]-take2;

if(stay2>0) {

if(num[1]%9==0) totle = totle+num[1]/9;

else totle = totle+num[1]/9+1;

}

int area = totle*36-num[5]*36-num[4]*25-num[3]*16-num[2]*9-num[1]*4;

int need = num[0]-area;

if(need>0){

totle=totle+need/36+1;

}

if(flag) System.out.println(totle);

}

}

}



全部评论
详细总结分析见博客:欢迎交流学习http://blog.csdn.net/u011489043/article/details/77673843
点赞 回复 分享
发布于 2017-08-29 10:49
public class Main2 { public static void main(String[] args){ Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); int[] nums = new int[m]; for(int i = 0; i < m; i++){ nums[i] = in.nextInt(); } List<Integer> list = new ArrayList<Integer>(); for(int i = 0; i<nums[0]; i++){ list.add(nums[0]); } int j = list.size() ==1 ? nums[1]:list.get(1); int q=1; while(list.size() < n) { for (int i = 0; i < j; i++) { list.add(nums[q % m]); } q++; j = list.get(q); } for(int i= 0; i< list.size(); i++){ System.out.println(list.get(i)); } } } 第一题 只过了20% ;样例用了很多都是对的 不知道哪出问题了 lz能否看看,跟lz写的比较相似
点赞 回复 分享
发布于 2017-08-28 23:15

相关推荐

回家当保安:复旦✌🏻,佬你的简历感觉挺好的,寒假日常hc比较少。佬可以过完年之后再试试,日常实习hc比较充足
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务