网编程题好简单
发布于 2017-04-09 19:45 3791 次浏览 1 赞 来自 随便聊聊  

今天这个编程题简单

28 条回复

是的...感觉做过最简单的..

2017-04-09 20:14

2017-04-09 20:14

第一次提前做完,并且3道编程ac。。

2017-04-09 20:24

同已交卷

2017-04-09 20:36

哪个卷的?人人?

2017-04-09 21:12

第三题老是超时,60%通过率,求大牛上题解~

2017-04-09 21:16

不开心。。。最后一题刚写完就提交了,,,本来可以全部AC的,然并卵,只有60%了。。哎哎哎

2017-04-09 21:17
ahutsunshine 回复 acmcoderjKtgtu5c

左边和右边求和是有技巧的,第一次肯定是左边右边遍历求和,但第二次左边只需上次求得的结果加右边一个数,右边只需减去一个数再比较两者是否相等,无需重新遍历求和。这就是造成你60%通过率的原因

2017-04-09 21:19
鹿王美伦 回复 acmcoder5krWIKNp

请教一下,第三道编程题是怎么判断输入结束的?

2017-04-09 21:19

想问下,人人考完之后能在赛码网看到答案解析吗??

2017-04-09 21:23

大神们能把AC代码发出来让我们参观参观么?让我们学习学习,谢谢。

2017-04-09 21:23
2
acmcoderGT0DJFqo 回复 鹿王美伦

赛码网上的题,一般都是多组数据,本地编译的时候用一组数据测试,没问题之后直接j剪切到while(Scanner.hasNext()){}里

2017-04-09 21:24

大神们能把AC代码发出来让我们参观参观么?让我们学习学习,谢谢。

2017-04-09 21:25
package renren;

import java.util.Scanner;

public class Mainthree {

	public static void main(String[] args) {
		Scanner s =new Scanner(System.in);
		int n = s.nextInt();
		int[] numer = new int[n];
		for (int i = 0; i < n; i++) {
			numer[i] = s.nextInt();
		}
		
		System.out.println(getTheCount(n,numer));
	}
	
	public static int getTheCount(int n,int[] number) {
		int rs = 0;
		int allcount = 0;
		for (int i = 0; i < number.length; i++) {
			allcount += number[i];
		}
		if(allcount % 2 != 0) {
			return rs;
		} else {
			int left = number[0],right = allcount - number[0];
			if(left == right) {
				rs ++;
			}
			for (int i = 1; i < number.length -1; i++) {
				left += number[i];
				right -= number[i];
				if(left == right) {
					rs ++;
				}
			}
		}
		
		return rs;
	}
	
}

第三道,求指导,为什么AC0?

2017-04-09 21:25

人人的题……不知道他考的这是啥?感觉就是简单编程,也用不上什么数据结构和算法

2017-04-09 21:25
鹿王美伦 回复 acmcoderGT0DJFqo

多谢!

2017-04-09 21:28

第三题那种输入是用while控制吗

var str1=read_line();

var str2=read_line();

while(str1&&str2){

...

}这样吗

不知道咋搞的 明明很简单 用例也能输出 但就是报错 郁闷死了 这么简单这么简单这么简单居然!!!

2017-04-09 21:31
acmcoder5krWIKNp 回复 鹿王美伦

楼上+1

2017-04-09 21:35
acmcoder5krWIKNp 回复 acmcoderaXMSkPYD

等晚一点吧,有解析

2017-04-09 21:37
coder_89978DHV 回复 coder_YDA6G9C9

你的思路是怎样的呢?

2017-04-09 21:37
acmcoderGT0DJFqo 回复 acmcoderKZJg1x7e

if(allcount % 2 != 0) { return rs; 这啥意思

2017-04-09 21:39

第三题java答案

public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        while (in.hasNext()) {

            int n=in.nextInt();

            int[] num=new int[n];

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

                num[i]=in.nextInt();

            if(n<=1){

                System.out.println(0);

            }else {

                int count=0;

                int left=0;

                int right=0;

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

                    if(i==0) {

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

                            left += num[j];

                        }

                        for (int k = i + 1; k < n; k++) {

                            right += num[k];

                        }

                    }else {

                        left=left+num[i];

                        right=right-num[i];


                    }

                    if(left==right)

                        count++;

                }

                System.out.println(count);


            }

        }

    }


2017-04-09 21:39
1
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        while (input.hasNext()){
            int size= Integer.parseInt(input.nextLine());
            String[] data = input.nextLine().split(" ");
            int[] preorder = new int[size];
            int[] postorder = new int[size];
            int pre = 0;
            int post = 0;
            for(int i = 0;i < size;i++){
                pre += Integer.parseInt(data[i]);
                post += Integer.parseInt(data[size - 1 - i]);
                preorder[i] = pre;
                postorder[size - 1 - i] = post;
            }
            int result = 0;

            for(int i = 0;i < size - 1;i ++){
                if(preorder[i] == postorder[i+1])result++;
            }
            System.out.println(result);
        }



    }

}


2017-04-09 21:42
3
acmcoderGT0DJFqo 回复 acmcoderGT0DJFqo

我的第三题答案,虽然空间用的比较多,不过挺好理解的,理解之后很好改成空间小的

2017-04-09 21:43
acmcoderARPiPeO7 回复 acmcoderKZJg1x7e

这一步,i=1;i<arr.length;i++){ left+=arr[i]; right-=arr[i];不应该到arr的最后一个应该是到倒数第二个,不然右侧就没有数字了

2017-04-09 21:45
acmcoderjKtgtu5c 回复 acmcoderjKtgtu5c

哦哦,原来是这样╮(╯▽╰)╭,谢谢大牛!

2017-04-09 21:47
acmcoderKZJg1x7e 回复 acmcoderGT0DJFqo

这步意思是 如果和不为偶数,那么是不能分为两段。

2017-04-11 15:06
acmcoderKZJg1x7e 回复 acmcoderARPiPeO7

这个 我写的是i<arr.length-1,是倒数第二个了。我查了下,AC0应该是输入的问题,需要循环输入才可以。

2017-04-11 15:07
添加回复
回到顶部