A. 第六屆藍橋杯大賽個人賽省賽java b組試題 三羊獻瑞怎麼解
窮舉法就可以解。
import java.io.BufferedInputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class Main
{
int re = 0;
public String doFilter()
{
//在這里我把斷號和重號的初始值都設置成0,實際情況是不可能出現0的情況,所以設置成0.
int m = 0;// 表示斷號
int n = 0;// 表示重號
List<String[]> list = new ArrayList<String[]>();
List<Integer> numList = new ArrayList<Integer>();
Scanner scan1 = new Scanner(System.in);
Scanner scan2 = new Scanner(new BufferedInputStream(System.in));
int rowNum = scan1.nextInt();
// 把輸入所有行的數據放到numList里
for (int i = 0; i < rowNum; i++)
{
String s = scan2.nextLine().trim();
String[] nums = s.split(" ");
for (String str : nums)
{
if (str.trim().length() != 0)
{
numList.add(Integer.valueOf(str));
}
}
}
// 使用工具類對numList進行排序
Collections.sort(numList, new Comparator<Integer>()
{
@Override
public int compare(Integer a, Integer b)
{
if (a > b)
{
return 1;
}
return -1;
}
});
for (int i = 0; i < numList.size() - 1; i++)
{
//得到斷號
if (numList.get(i) == numList.get(i + 1))
{
n = numList.get(i);
continue;
}
//得到重號
if ((numList.get(i) + 1) != numList.get(i + 1))
{
m = numList.get(i) + 1;
}
}
return m + " " + n;
}
public static void main(String[] args)
{
//測試下
System.out.println(new Main().doFilter());
}
}
C. 哪位大俠能用java程序實現下面的題目
這道題可以這么來分解。
把整數'1'分解為以下形式。
1 = 1/a + 1/b + 1/c + 1/d,並且 0 < a, b, c, d < 20.,a,b,c,d都是整數。
a, b, c, d 代表每喝完一瓶酒後,剩餘的海盜數量。
假設最開始海盜數量一共為x人,那麼a = x, 那麼海盜船長第一次喝了 1/x瓶酒
喝完第一瓶酒之後,還剩餘b人,即第一次喝倒了x-b人,第二次海盜船長喝了1/b瓶酒。。。。
依次類推。海盜船一共喝了 1/x + 1/b + 1/c + 1/d = 1瓶酒。
寫程序就這么寫吧。
==============================
public class hai {
public static void main(String[] args) {
int minPerson = 1;
double allPersons = 4;
while (allPersons <= 20) {
int firstPersons = minPerson;
while (firstPersons <= allPersons) {
int secondPersons = minPerson;
while (secondPersons <= allPersons - firstPersons) {
int thirdPersons = minPerson;
while (thirdPersons <= allPersons - firstPersons
- secondPersons) {
double captionDrinkedTotal = 1.0/allPersons
+ 1.0/(allPersons - firstPersons)
+ 1.0/(allPersons - firstPersons - secondPersons)
+ 1.0/(allPersons - firstPersons - secondPersons - thirdPersons)
- 1;
if (Math.abs(captionDrinkedTotal) < 0.00000001) {
System.out.print("海盜總數:" + allPersons);
System.out.print(" 第一次喝倒人數:" + firstPersons);
System.out.print(" 第二次喝倒人數:" + secondPersons);
System.out.println(" 第三次喝倒人數:" + thirdPersons);
}
thirdPersons++;
}
secondPersons++;
}
firstPersons++;
}
allPersons++;
}
}
}
==========
運行結果:
海盜總數:12.0 第一次喝倒人數:6 第二次喝倒人數:2 第三次喝倒人數:2
海盜總數:15.0 第一次喝倒人數:5 第二次喝倒人數:7 第三次喝倒人數:1
海盜總數:18.0 第一次喝倒人數:9 第二次喝倒人數:6 第三次喝倒人數:1
海盜總數:20.0 第一次喝倒人數:15 第二次喝倒人數:1 第三次喝倒人數:2
==========
PS:只要把minPerson = 1,改為 minPerson = 0,就可以允許某次喝酒沒有海盜倒下。
D. 藍橋杯java b一共多少題
你好~
附上2016年藍橋杯Java b組的題目,可以看出一共是十個關卡~
網頁鏈接
祝天天開心
E. 藍橋杯往年本科java試題。。。 非常感謝
一、單選題目(主要考擦java基礎知識 好像25道)
1、String與StringBuffer區別 如:
2、final中的return switch中的break和return 執行的順序和執行結果
3、for; do...while(); while()....do;循環的執行過程 涵蓋 、 -- 的考核
4、循環中的break與continue
5、數組的定義:如:
有如下數組:
byte[] array1,array2[]
byte array3[][]
byte[][] array4
假設每個變數都已初始化,一下哪一條語句會導致編譯錯誤?
A、array2 = array1; B、array2 = array3; C、array2 = array3;
D、A並且B ; E、A並且C ; F、B並且C ;
6、執行一下代碼後,哪個結論是正確的?
A、s[10]為""; B、s[9]為null;
C、s[0]為未定義; D、s.length()為10;(詳見《Java習題語言習題與解析》一書。P46)
7、構造函數定義的考核、繼承、多態(文字描述的判斷)
8、遞歸函數程序的考核,選擇輸出結果
9、靜態成員,與非靜態成員
10、函數重載(在多選里也出現、主要是選擇哪個跟哪個構成重載,或否)
11、final static 的考核:如
A、static class TT{}
B、private class TT{}
C、abstract class TT{}
D、final public class TT{}
E、final abstract class TT{}
12、String對象分析一下程序:
public class X{
public static void main(String[] args){
String s = new String("Hello");
modify(s);
System.out.println(s);
}
public static void modify(String s){
s = " world!";
}
}
該程序執行結果為:
A、編譯成功,執行後輸出:「Hello」
B、編譯失敗
C、編譯成功,執行後輸出"Hello word!"
D、編譯成功,執行後引起異常
答案:A
13、靜態方法構造方法 重載函數 覆蓋的定義
14、文件操作
15、線程???(記不清)
二、多選題(五道)
1、重載:指出下列哪些方法與方法public void add(int a){}重載()
A、public int add(int a)
B、public void add(long a)
C、public void add(int a,int b)
D、public void add(float)
2、內部類與static
下面哪幾種陳述是成立的?
A、一個內部類可聲明為靜態的
B、一個匿名內部類可聲明為私有的
C、一個匿名內部類可聲明為公共的
D、一個匿名內部類可聲明可以繼承一個抽象類
E、一個匿名內部類可聲明為保護型
答案:AB
3、內部類的聲明:
下面哪兩個內部類的聲明是合適的?
1.public class OuterClass{
private double d1 = 1.0;
//插入內部類代碼
}
A、static class InnerOne{
public double methoda(){return d1;}
}
B、static class InnerOne{
static double methoda(){return d1;}
}
C、private class InnerOne{
public double methoda(){return d1;}
}
D、protected class InnerOne{
static double methoda(){return d1;}
}
E、public abstract class InnerOne{
public abstract double methoda(){return d1;}
}
答案:CE
在靜態方法中不能訪問靜態成員,D也是靜態方法中反問非靜態成員。
4、下列陳述對默認的構造方法是成立的?
A、默認的構造方法為方法變數進行初始化
B、編譯程序會為每一個類創建默認的構造方法
C、默認的構造方法調用其超類的無參數構造方法
D、默認的構造方法初始化在類中聲明的實例變數
E、當一個僅有帶參數的構造方法時,編譯程序不會給這個類創建默認的構造方法
F、當一個類沒有其他構造方法時,編譯程序才為其創建默認的構造方法
答案:DEF
5、一道關於多態的選擇題
三、填空題 5道
填空題,主要學會察API,開始會有API提供,可以進行運行調試。
1、文件操作、IO流的操作
2、重寫父類方法
3、從API找方法,實現功能。(具體題目忘了)
4、介面???
5、。。。。
四、代碼完善題
這道題,要規范的按照題目要求來做,
題目大概是這樣:要求對26個字母實現,這樣的運算
1、對26個字母求補集
2、對兩個集合(都是字母) 求交集
3、求並集、求並集分兩種:第一、把兩個相加,第二、把兩個重復出現的刪除,
4、求差集,兩個集合,或者是,一個集合對全集26個字母求差集。
F. 一道關於藍橋杯java組的練習題,運行沒有問題可是一提交到系統就顯示錯誤,求各位大神賜教
輸入的十六進制數不會有前導0,比如012A。輸出的八進制數也不能有前導0
你沒有實現這一點。。。所以報錯
G. 對於這個藍橋杯立方尾不變題我用java程序做的,正確結果應該是36,為什麼我這樣寫結果就是12,如
publicstaticvoidmain(String[]args){
intsum=0;
for(inti=1;i<=10000;i++){
Stringn=""+(long)i*i*i;//轉為字元串
if(n.endsWith(""+i)){//判斷字元串結尾是否是i本身
sum++;
}
}
System.out.println(sum);
}
如果不用Math.pow(i,3),改用i*i*i
默認結果是int型,int范圍是±21億,1000^3就是10億了,早就超出范圍了,所以只有3個
H. java 藍橋杯的一個演算法題問題;
publicclasslanqiao6{
publicstaticvoidmain(String[]args){
intcount=0;
for(inta=1;a<10;a++)
for(intb=1;b<10;b++)
for(intc=1;c<10;c++)
for(intd=1;d<10;d++)
for(inte=1;e<10;e++){
Set<Integer>set=newHashSet<Integer>();
set.add(a);
set.add(b);
set.add(c);
set.add(d);
set.add(e);
if(set.size()!=5)
continue;
intsum1=(a*10+b)*(c*100+d*10+e);
intsum2=(a*100+d*10+b)*(c*10+e);
if(sum1==sum2)
count++;
}
System.out.print(count);
}
}
//-_-|| 讓你用深度優先搜索你整5個for循環真的好嗎?
I. Java/C 求幸運數字 藍橋杯試題,求解答!求演算法!
package com.sise.hhz.LQB;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.ListIterator;
import java.util.Scanner;
public class LuckyNumber
{
static Integer count = 0;
static Integer index = 1;
public static void getLuckyNum(LinkedList al, Integer min, Integer max, Integer luckyNum)
{
ListIterator lt = al.listIterator();
Integer maxSize = al.size();
boolean judge = true;
for(Integer i = 1; i <= maxSize; i++)
{
lt.next();
if(i % luckyNum == 0)
{
judge = false;
lt.remove();
}
}
if(judge)
{
lt = al.listIterator();
while(lt.hasNext())
{
if((Integer)lt.next() > min)
{
count =al.size() - lt.previousIndex();
return;
}
}
return;
}
luckyNum = (Integer)al.get(index++);
getLuckyNum(al, min, max, luckyNum);
}
public static void main(String []src)
{
LinkedList al = new LinkedList();
Integer min = 0;
Integer max = 0;
Scanner sn = new Scanner(System.in);
min = sn.nextInt();
max = sn.nextInt();
for(int i = 1; i < max; i++)
{
al.add(i);
}
getLuckyNum(al, min, max, 2);
System.out.println(count);
}
}
J. 藍橋杯java軟體開發考什麼
藍橋杯軟體組主要考察同學們演算法和數據結構的實際應用能力,可以提升演算法知識和真題練習兩大方面著手備賽。目前藍橋杯備賽區已上線包含編程