java蓝桥杯试题

因为要参加蓝桥杯,琢磨了一下算法,原来数学不好是这么难搞:下面是一些蓝桥杯的试题(习题)。我用的是java ,我看网上的人多数用的是c语言。有更好的方法希望可以分享一下下。

1.      有50枚硬币,可能包括4种类型:1元,5角,1角,5分。已知总价值为20元。求各种硬币的数量。
比如:2,34,6,8 就是一种答案。
而 2,33,15,0 是另一个可能的答案,显然答案不唯一。
你的任务是确定类似这样的不同的方案一共有多少个(包括已经给出的2个)?
{ 可以看出这里的硬币数量和存在着 1元×20+5角×10+1角×2+5分=400   这样的关系的分类才符合题目的要求}

2.四平方和(程序设计)四平方和的定理又称拉格朗日定理:每个正整数都可以表示至多4个正整数的平方和。如果把0包括进去,就可以表示为4个数的平方和。
比如:
   5=0^2+0^2+1^2+2^2         7=1^2+1^2+1^2+2^2
对于一个给定的正整数,可能存在多种平方和的表示法。要求你4个数排序:   0<=a<=b<=c<=d并对所有的可能表示法按 a,b,c,d为联合主键升序排列,最后输出第一个表示法。程序输入为一个正整数N(N<5000000),要求输出4个非负整数,按从小到大排序,中间用空格分开,如,输入5
则程序输出:
0 0 1 2

资源约定:
峰值内存消耗(含虚拟机) < 256M   CPU消耗  < 3000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

(这里演示了没有用return 的情况,结果会把多种情况输出,我们的最终答案只要第一中升序结果,所以,做题时一定要看清题目,这里是给我自己的忠告。)

3.区间第K大的数
1.第一行输入序列的个数n
2.第二行输入一个序列
3.第三行输入区间个数
4.输入l ,r,k; l :区间的开始 r : 区间的结束 k ; 第k个大的数
下标从1开始

import java.util.Scanner;

public class MainR {

	/*寻找第k大的数*/

	public void findK(int a[],int b[]){
		int l,r,k,i,j;
		l=b[0];
		r=b[1];
		k=b[2];
		int w=r-l+1;

		int[] c=new int[w];//存放区间的序列
		for(i=0;i<w;i++){
			c[i]=a[l-1];
			l+=1;
			if(l==(r+1))//当l==r+1时,区间序列达到最后一个
				break;
		}
		int small;
		for(i=0;i<c.length;i++){
			for(j=i+1;j<c.length;j++){
				if(c[i]<c[j]){
					small=c[i];
					c[i]=c[j];
					c[j]=small;
				}
			}
		}
		System.out.println(c[k-1]);
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);

		int n=in.nextInt();//序列的个数
		//给定序列
		int array[]=new int[n];
		int i,j;
		for(i=0;i<n;i++){
			array[i]=in.nextInt();
		}
		//区间个数
		int m=in.nextInt();
		//l r k
		int[] bArray[]=new int[m][3];
		for(i=0;i<m;i++){
			for(j=0;j<3;j++){
				bArray[i][j]=in.nextInt();
			}
		}
		MainR w;
		for(i=0;i<m;i++){
			w=new MainR();
			w.findK(array, bArray[i]);
		}
		in.close();
	}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java实现蓝桥杯G将军的示例代码

    G将军有一支训练有素的军队,这个军队除开G将军外,每名士兵都有一个直接上级(可能是其他士兵,也可能是G将军).现在G将军将接受一个特别的任务,需要派遣一部分士兵(至少一个)组成一个敢死队,为了增加队员的独立性,要求如果一名士兵在队中,他的直接上级不能在队中. 请问,G将军有多少种派出队的方法.注意,G将军也可以作为一个士兵进入队. 输入格式 输入的第一行包含一个整数n,表示包括G将军在内的军队的人数.军队的士兵从1至n编号,G将军编号为1. 接下来n-1个数,分别表示编号为2, 3, -, n的

  • java蓝桥杯历年真题及答案整理(小结)

    蓝桥杯java历年真题及答案整理(闭关一个月,呕心沥血整理出来的) 1 全排列 是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种.如:给定 A.B.C三个不同的字符,则结果为:ABC.ACB.BAC.BCA.CAB.CBA一共3!=3*2=6种情况. package Question1_9; import java.util.Scanner; import java.util.Vector; public class Question1 { public static

  • java蓝桥杯试题

    因为要参加蓝桥杯,琢磨了一下算法,原来数学不好是这么难搞:下面是一些蓝桥杯的试题(习题).我用的是java ,我看网上的人多数用的是c语言.有更好的方法希望可以分享一下下. 1.      有50枚硬币,可能包括4种类型:1元,5角,1角,5分.已知总价值为20元.求各种硬币的数量. 比如:2,34,6,8 就是一种答案. 而 2,33,15,0 是另一个可能的答案,显然答案不唯一. 你的任务是确定类似这样的不同的方案一共有多少个(包括已经给出的2个)? { 可以看出这里的硬币数量和存在着 1元

  • Java蓝桥杯实现线段和点

    目录 一.算法提高 线段和点 1.时间限制 2.问题描述 3.输入格式 4.输出格式 5.数据规模和约定 一.算法提高 线段和点 1.时间限制 1.0s 内存限制:256.0MB 2.问题描述 有n个点和m个区间,点和区间的端点全部是整数,对于点a和区间[b,c],若a>=b且a<=c,称点a满足区间[b,c]. 求最小的点的子集,使得所有区间都被满足. 3.输入格式 第一行两个整数n m 以下n行 每行一个整数,代表点的坐标 以下m行 每行两个整数,代表区间的范围 4.输出格式 输出一行,最

  • Java实现蓝桥杯 算法提高 线段和点

    目录 一.算法提高 线段和点 1.时间限制 2.问题描述 3.输入格式 4.输出格式 5.数据规模和约定 一.算法提高 线段和点 1.时间限制 1.0s 内存限制:256.0MB 2.问题描述 有n个点和m个区间,点和区间的端点全部是整数,对于点a和区间[b,c],若a>=b且a<=c,称点a满足区间[b,c]. 求最小的点的子集,使得所有区间都被满足. 3.输入格式 第一行两个整数n m 以下n行 每行一个整数,代表点的坐标 以下m行 每行两个整数,代表区间的范围 4.输出格式 输出一行,最

  • Java高级面试题小结

    这是一个高级Java面试系列题中的第一部分.这一部分论述了可变参数,断言,垃圾回收,初始化器,令牌化,日期,日历等等Java核心问题.接下来我们就看看具体都有哪些问题. 1.什么是可变参数? 2.断言的用途? 3.什么时候使用断言? 4.什么是垃圾回收? 5.用一个例子解释垃圾回收? 6.什么时候运行垃圾回收? 7.垃圾回收的最佳做法? 8.什么是初始化数据块? 9.什么是静态初始化器? 10.什么是实例初始化块? 11.什么是正则表达式? 12.什么是令牌化? 13.给出令牌化的例子? 14.

  • 15个高级Java多线程面试题及回答

    Java 线程面试问题 在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分.如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的问题.在投资银行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的.他们会问面试者很多令人混淆的Java线程问题.面试官只是想确信面试者有足够的Java线程与并发方面的知识,因为候选人中有很多只浮于表面.用于直接面向市场交易的高容量和低延时的电子交易系统在本质上是并发的.下面这些是我在不同时间不同地点喜欢问的Jav

  • 15个顶级Java多线程面试题(附答案)

    在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分.如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的问题.在投资银行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的.他们会问面试者很多令人混淆的Java线程问题.面试官只是想确信面试者有足够的Java线程与并发方面的知识,因为候选人中有很多只浮于表面.用于直接面向市场交易的高容量和低延时的电子交易系统在本质上是并发的.下面这些是我在不同时间不同地点喜欢问的Java线程问题.我没有提供答

  • 2018版java多线程面试题集合及答案

    java多线程面试题整理及答案,供大家参考,具体内容如下 1.什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对 运算密集型任务提速.比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒.Java在语言层面对多线程提供了卓越的支 持,它也是一个很好的卖点. 2.线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务.不同的进程使用

  • Java后端面试题最新整理

    我们学习java知识,除了要做基础的程序运行外,不可避免的要在面试中遇到一些理论的考察.有些小伙伴程序做的不错,但是理论上面有所欠缺.这里小编整理了一些常见的后端面试题,希望能对小伙伴们有所帮助,下面一起看看吧. 一.八种基本数据类型的大小,以及他们的封装类. byte(Byte) 1 ,short(Short) 2 ,int(Integer) 4 ,long(Long) 8 ,float(Float) 4 ,double(Double)8,boolean(Boolean),char(Chara

  • Java常见面试题之final在java中的作用是什么

    谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字. 另外,Java中的String类就是一个final类. 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字的基本用法. 1.修饰类 当用final修饰一个类时,表明这个类不能被继承.也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰.final类中的成员变量可以根据需要设为

随机推荐