JAVA实现出题团队

赛码网真题
头条的2017校招开始了!为了这次校招,我们组织了一个规模宏大的出题团队。每个出题人都出了一些有趣的题目,而我们现在想把这些题目组合成若干场考试出来。在选题之前,我们对题目进行了盲审,并定出了每道题的难度系数。一场考试包含3道开放性题目,假设他们的难度从小到大分别为a, b, c,我们希望这3道题能满足下列条件:

a<= b<= c
b - a<= 10
c - b<= 10

所有出题人一共出了n道开放性题目。现在我们想把这n道题分布到若干场考试中(1场或多场,每道题都必须使用且只能用一次),然而由于上述条件的限制,可能有一些考试没法凑够3道题,因此出题人就需要多出一些适当难度的题目来让每场考试都达到要求。然而我们出题已经出得很累了,你能计算出我们最少还需要再出几道题吗?

题解:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Main{
	public static void main(String[] args){
    int a = 0;
    int b = 0;
    int i = 0;
    int j = 0;
    int sum = 0;
    int n = 1;
    Scanner c = new Scanner(System.in);
    a = c.nextInt();
    ArrayList<Integer> q = new ArrayList<>() ;   
    for(i=0;i<a;i++){
        b = c.nextInt(); 
        q.add(b);
        }
    Collections.sort(q);
    for(i=1;i<q.size();i++){
    	if(q.get(i) > q.get(i-1)+20){
    		if(n%3 == 0){
    		sum = sum + 2;
    		n = n+2;
    		}
    		else if(n%3 == 1){
    			sum = sum+ 1;
    			n = n + 1;
    		}
    	}
    	else if(q.get(i) > q.get(i-1)+10){
    		if(n%3 == 1 ){
    			sum = sum +1;
    			n=n+1;
    		}
    		else if(n%3 == 0){
    			sum = sum+1;
    			n = n+1;
    		}	
    	}
    	n++;
    }
 
    if(n%3 == 1) sum = sum + 2;
    else if(n%3 == 2) sum = sum + 1;
    
    System.out.println(sum);
	}
    }

错题记:
给ArrayList排序, Collections.sort(q)。
时间上显著低于自己写的排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java数学出题项目是一个使用Java语言开发的软件项目,旨在帮助教师和学生生成各种类型的数学题目。该项目可以囊括数学的各个领域,例如代数、几何、概率统计等,并能够根据不同的难度级别和指定的题目数量来生成题目。 项目的实现思路是通过编写相应的算法和逻辑来生成题目,然后将生成的题目以文本或图片的形式输出到用户界面上。在设计这个项目时,一个重要的考虑因素是灵活性。教师和学生可以通过设置参数来自定义生成题目的规则,从而满足不同的教学需求。 Java数学出题项目的主要功能包括: 1. 题目类型选择:用户可以通过界面选择需要生成的题目类型,如代数方程、几何图形等。 2. 难度级别设置:用户可以根据学生的水平要求设置题目的难度级别,包括简单、中等和困难等。 3. 题目数量设置:用户可以指定需要生成的题目数量。 4. 自动批改:项目可以根据教师提供的答案,自动批改学生的作业,统计得分和错误率等。 5. 导出和保存:项目可以将生成的题目导出为PDF或其他格式,方便教师进行打印或分享。 Java数学出题项目的优势在于其功能丰富、灵活性强和易于使用。通过该项目,教师可以快速生成大量的题目,有效提高教学效率;学生可以通过做题来提升数学能力,巩固知识点。这个项目有助于提升数学教学的质量和效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值