第八届传智杯程序设计赛道模拟考

A 判断闰年

题目

给定一个整数 n,判断其是否为闰年。闰年的判定规则如下:

  • 如果 n 能被 400 整除,则为闰年;
  • 否则如果 n 能被 4 整除且不能被 100 整除,则为闰年;
  • 否则,不是闰年。

代码

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int year = sc.nextInt();
		
		if((year%400==0)||((year%4==0)&&(year%100!=0))) {
			System.out.println("yes");
		}else {
			System.out.println("no");
		}
		sc.close();
	}
}

B 吃瓜群众

题目

群众想要吃瓜,于是给你一个瓜让你切,但是作为考验

告诉你西瓜的重量,问你能否将这个西瓜分成两部分,每个部分都是偶数。

注意:这里说的是能否分成两部分,不是能否平均分成两部分

代码

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int weight = sc.nextInt();
		
		if (weight==2) {
			System.out.println("NO, you can't divide the watermelon into two even parts.");
		}else {
			if (weight%2==0) {
				System.out.println("YES, you can divide the watermelon into two even parts.");
			}else {
				System.out.println("NO, you can't divide the watermelon into two even parts.");
			}
		}

		sc.close();
	}
}

C [CSP2019]数字游戏

题目

小 K 同学向小 P 同学发送了一个长度为 8 的 01 字符串来玩数字游戏,小 P 同学想 要知道字符串中究竟有多少个1。

注意:01 字符串为每一个字符是 0 或者 1 的字符串,如“101”(不含双引号)为一 个长度为 3 的 01 字符串。

代码

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//输入
		String s = sc.nextLine();
		//计数器
		int count=0;
		
		char c[] = s.toCharArray();
		//遍历查找
		for(int i=0;i<8;i++) {
			if (c[i]=='1') {
				count++;
			}
		}
		System.out.println(count);
        sc.close();
	}
}


D 字符金字塔

题目

请打印输出一个字符金字塔,字符金字塔的特征请参考样例

A

ABA

ABCBA

代码

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String s = sc.next();
		char c = s.charAt(0);
		int len = c-'A'+1;
		char c1 ;
		
		for(int i=0;i<len;i++) {
			for(int j=len-i-1;j>0;j--) {
				System.out.print(" ");
			}
			for(int j=0;j<=i;j++) {
				c1 = (char) ('A'+j);
				System.out.print(c1);
			}
			for(int k=i-1;k>=0;k--) {
				c1 = (char) ('A'+k);
				System.out.print(c1);
			}
			System.out.println();
		}
		
		sc.close();
	}
}


E 牛牛学数列

题目

牛牛开始学习数列啦。现在他想计算以下数列前 n 项的和:


S(n) = \sum_{i=1}^{n}(-1)^{\,i-1}\times i = 1 - 2 + 3 - 4 + \cdots + (-1)^{\,n-1}n

请你计算并输出 S(n) 的值

代码

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		int k = 1,sum=0;
		for (int i = 1; i <= n; i++) {
			sum+=k*i;
			k*=-1;
		}
		System.out.println(sum);
		
		sc.close();
	}
}


F [CQOI2010]扑克牌

题目

你有 n 种牌,第 i 种牌的数目为 c_i。另外有 m 张特殊的 Joker 牌。

你有如下方法来组成一套牌:

  • 不使用 Joker 牌,n 种牌各一张;
  • 使用一张 Joker 牌,其他 n-1 种牌各一张;

例如,当 n = 3 时,一共有四种不同的组合方式:

  • \{1, 2, 3\}
  • \{\texttt{Joker}, 2, 3\}
  • \{\texttt{Joker}, 1, 3\}
  • \{\texttt{Joker}, 1, 2\}

现在,给出 nmc_i,你的任务是组成尽量多套牌。每张牌最多只能用在一副套牌里(可以有牌不使用)。

代码

import java.util.Scanner;
import java.util.Arrays;

public class Main {
   
    static boolean check(long mid,int m,int a[]) {
        long need = 0;          
        for (int i = 0; i < a.length; i++) {
            if (a[i] < mid) {
                need += mid - a[i];
            }
        }
        return need <= m && need <= mid;
    }
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        //读入数据
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();
        }
        
        //排序
        Arrays.sort(a);
        
        //二分查找
        long ans=0;
        long L = 0; 
        long R = a[a.length-1]+m;
        long  mid;
        while (L <= R) {                 
            mid = L + (R - L) / 2;
            if (check(mid,m,a)) {
                L = mid + 1;
                ans = mid;
            } else {
                R = mid - 1;
            }
        }
        System.out.println(ans);
        sc.close();
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-17 22:24
新紫光前沿科技研究院&nbsp;&amp;&nbsp;中科曙光&nbsp;有佬帮忙选一下吗紫光:gpgpu&nbsp;相关的软件测试&nbsp;天津&nbsp;965&nbsp;初创私企(挂靠的新紫光集团&nbsp;宣讲会讲的上下游资源应该可以复用&nbsp;不缺&nbsp;扩张期&nbsp;不裁人应该可能大概..)曙光:服务器的硬件&amp;软件测试&nbsp;天津&nbsp;加班10个周中&nbsp;2-3个周六(加班费比较多)月base比紫光高2k&nbsp;算加班费多5-6k&nbsp;市场化国企曙光已经签了三方,签的保底,学校只有一次毁约机会,论福利以及薪资的话&nbsp;曙光应该是高一档(不过两个在天津应该都能过得比较舒服)&nbsp;有问过之前的师兄&nbsp;曙光除了加班好像没什么雷点,主要纠结的是行业方向:做服务器集成的系统测试会不会没有前景,想了解目前这两个offer如何权衡,跪求相关领域大佬给建议备注:天津双非本-软工&nbsp;9硕-脑机接口&nbsp;工作地点无所谓&nbsp;有在准备春招,秋招实验室拖得晚&nbsp;大厂都没投&nbsp;想春招试试&nbsp;还是主测开(主要是腾不出时间做轮子项目&nbsp;导师比较*&nbsp;python软件项目开发的过不了简历-oppo&nbsp;vivo&nbsp;海康&nbsp;荣耀&nbsp;中兴&nbsp;天津这边的简历都挂了&nbsp;感觉只能测试冲冲了&nbsp;)但是听劝(开发的简历&nbsp;python&nbsp;+&nbsp;unity+c++&nbsp;因为本科的技能栈是游戏开发&nbsp;但往后不考虑游戏开发方向&nbsp;简历主要呈现的是实验室期间的python软件项目)
2025.11.17 在牛客打卡1天!
点赞 评论 收藏
分享
评论
2
3
分享

创作者周榜

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