1. 程式人生 > >第九屆藍橋杯省賽【Java C組】

第九屆藍橋杯省賽【Java C組】

第一題:結果填空 哪天返回

小明被不明勢力劫持。後被扔到x星站再無問津。小明得知每天都有飛船飛往地球,但需要108元的船票,而他卻身無分文。
他決定在x星戰打工。好心的老闆答應包食宿,第1天給他1元錢。
並且,以後的每一天都比前一天多2元錢,直到他有足夠的錢買票。
請計算一下,小明在第幾天就能湊夠108元,返回地球。

答案:11

第二題:結果填空 猴子吃香蕉 

5只猴子是好朋友,在海邊的椰子樹上睡著了。這期間,有商船把一大堆香蕉忘記在沙灘上離去。
第1只猴子醒來,把香蕉均分成5堆,還剩下1個,就吃掉並把自己的一份藏起來繼續睡覺。
第2只猴子醒來,重新把香蕉均分成5堆,還剩下2個,就吃掉並把自己的一份藏起來繼續睡覺。
第3只猴子醒來,重新把香蕉均分成5堆,還剩下3個,就吃掉並把自己的一份藏起來繼續睡覺。
第4只猴子醒來,重新把香蕉均分成5堆,還剩下4個,就吃掉並把自己的一份藏起來繼續睡覺。
第5只猴子醒來,重新把香蕉均分成5堆,哈哈,正好不剩!
請計算一開始最少有多少個香蕉。

public class Test2 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i=3;i<=20000;i++){
			int temp = i;
			if(i%5==1){
				int sum1 = temp-1-((temp-1)/5); //總數-猴子吃掉的1個-屬於它自己的一份
				if(sum1%5==2){
					int sum2 = sum1-2-((sum1-2)/5);
					if(sum2%5==3){
						int sum3 = sum2-3-((sum2-3)/5);
						if(sum3%5==4){
							int sum4 = sum3-4-((sum3-4)/5);
							if(sum4%5==0){
								System.out.println(temp);
							}
						}
					}
				}
			}
		}
	}
}

答案:3141

第五題:書號驗證

2004年起,國際ISBN中心出版了《13位國際標準書號指南》。
原有10位書號前加978作為商品分類標識;校驗規則也改變。
校驗位的加權演算法與10位ISBN的演算法不同,具體演算法是:
用1分別乘ISBN的前12位中的奇數位(從左邊開始數起),用3乘以偶數位,乘積之和以10為模,10與模值的差值再對10取模(即取個位的數字)即可得到校驗位的值,其值範圍應該為0~9。
下面的程式實現了該演算法,請仔細閱讀原始碼,填寫缺失的部分。

public class A
{
	static boolean f(String s){
		int k=1;
		int sum = 0;
		for(int i=0; i<s.length(); i++){
			char c = s.charAt(i);
			if(c=='-' || c==' ') continue;
			sum += ______________________________;  //填空
			k++;
			if(k>12) break; 
		}
		
		return s.charAt(s.length()-1)-'0' == (10-sum % 10)%10;
	}
	
	public static void main(String[] args){
		System.out.println(f("978-7-301-04815-3"));
		System.out.println(f("978-7-115-38821-6"));
	}
}

注意:只提交空缺的程式碼,不要抄寫已經存在的程式碼。

答案:(k%2==1?(1*(c-'0')):(3*(c-'0')))

第六題:程式碼填空 列印大X 

如下的程式目的是在控制檯列印輸出大X。
可以控制兩個引數:圖形的高度,以及筆寬。
用程式中的測試資料輸出效果:
(如果顯示有問題,可以參看p1.png)
高度=15, 筆寬=3
***           ***
 ***         ***
  ***       ***
   ***     ***
    ***   ***
     *** ***
      *****
       ***
      *****
     *** ***
    ***   ***
   ***     ***
  ***       ***
 ***         ***
***           ***
高度=8, 筆寬=5
*****  *****
 **********
  ********
   ******
   ******
  ********
 **********
*****  *****

請仔細分析程式流程,填寫缺失的程式碼。

public class A
{
	static void f(int h, int w){
		System.out.println(String.format("高度=%d, 筆寬=%d",h,w));
		int a1 = 0;
		int a2 = h - 1;
		
		for(int k=0; k<h; k++){
			int p = Math.min(a1,a2);
			int q = Math.max(a1+w,a2+w);
			
			for(int i=0; i<p; i++) System.out.print(" ");
			
			if(q-p<w*2){
				____________________________________________ ; //填空
			}
			else{
				for(int i=0; i<w; i++) System.out.print("*");
				for(int i=0; i<q-p-w*2; i++) System.out.print(" ");
				for(int i=0; i<w; i++) System.out.print("*");
			}
			System.out.println();
			a1++;
			a2--;
		}
	}
	
	public static void main(String[] args){
		f(15,3);
		f(8,5);
	}
}

答案:for(int i=0;i<q-p;i++)System.out.print("*");

第七題:程式設計題 縮位求和

在電子計算機普及以前,人們經常用一個粗略的方法來驗算四則運算是否正確。
比如:248 * 15 = 3720
把乘數和被乘數分別逐位求和,如果是多位數再逐位求和,直到是1位數,得
2 + 4 + 8 = 14 ==> 1 + 4 = 5;
1 + 5 = 6
5 * 6
而結果逐位求和為 3
5 * 6 的結果逐位求和與3符合,說明正確的可能性很大!!(不能排除錯誤)
請你寫一個計算機程式,對給定的字串逐位求和:
輸入為一個由數字組成的串,表示n位數(n<1000);

輸出為一位數,表示反覆逐位求和的結果。

例如:
輸入:
35379
程式應該輸出:
9
再例如:
輸入:

7583676109608471656473500295825

程式應該輸出:

1
資源約定:
峰值記憶體消耗(含虛擬機器) < 256M

CPU消耗  < 1000ms

import java.util.Scanner;
public class Test7 {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		String str = s.next();
		while(str.length()!=1){
			int a = str.charAt(0)-'0';//-'0'是為了把字串型別轉為int型別
			for(int i=1;i<str.length();i++){
				a+=str.charAt(i)-'0';
			}
			str=a+"";//轉為字串
		}
		System.out.println(str);
	}
}

相關推薦

九屆藍橋Java C

第一題:結果填空 哪天返回小明被不明勢力劫持。後被扔到x星站再無問津。小明得知每天都有飛船飛往地球,但需要108元的船票,而他卻身無分文。他決定在x星戰打工。好心的老闆答應包食宿,第1天給他1元錢。並且,以後的每一天都比前一天多2元錢,直到他有足夠的錢買票。請計算一下,小明在

2018九屆藍橋真題 C語言B 第一題

標題:第幾天 2000年的1月1日,是那一年的第1天。 那麼,2000年的5月4日,是那一年的第幾天? 注意:需要提交的是一個整數,不要填寫任何多餘內容。 答案:125 可以被四百整除,所以是

2018九屆藍橋真題 C語言B 六題 遞增三元

標題:遞增三元組 給定三個整數陣列 A = [A1, A2, … AN], B = [B1, B2, … BN], C = [C1, C2, … CN], 請你統計有多少個三元組(i, j,

九屆藍橋JAVA語言 C題解_1哪天返回

JAVA語言 C組題解_題1 哪天返回題目解題思路 題目 小明被不明勢力劫持。後被扔到x星站再無問津。小明得知每天都有飛船飛往地球,但需要108元的船票,而他卻身無分文。 他決定在x星戰打工。好心的老闆答應包食宿,第1天給他1元錢。 並且,以後的每一天都比前一天

九屆藍橋JAVA語言 C題解_題10 耐摔指數

JAVA語言 C組題解_題10 耐摔指數 題目 解題思路 題目 標題:耐摔指數 x星球的居民脾氣不太好,但好在他們生氣的時候唯一的異常舉動是:摔手機。 各大廠商也就紛紛推出各種耐摔型手機。x星球的質監局規定了手機必須經

九屆藍橋JAVA語言 C題解_題7 縮位求和

JAVA語言 C組題解_題7 縮位求和 題目 解題思路 題目 標題:縮位求和 在電子計算機普及以前,人們經常用一個粗略的方法來驗算四則運算是否正確。 比如:248 * 15 = 3720 把乘數和被乘數分別逐位求和,如

九屆藍橋JAVA語言 C題解_題6 列印大X

JAVA語言 C組題解_題6 列印大X 題目 解題思路 題目 標題:列印大X 如下的程式目的是在控制檯列印輸出大X。 可以控制兩個引數:圖形的高度,以及筆寬。 用程式中的測試資料輸出效果: (如果顯示有問題,可以參

九屆藍橋JAVA語言 C題解_題5 書號驗證

JAVA語言 C組題解_題5 書號驗證 題目 解題思路 題目 標題:書號驗證 2004年起,國際ISBN中心出版了《13位國際標準書號指南》。 原有10位書號前加978作為商品分類標識;校驗規則也改變。 校驗位的加權演

九屆藍橋JAVA語言 C題解_題4 幾個幸運數

JAVA語言 C組題解_題4 第幾個幸運數 題目 解題思路 題目 標題:第幾個幸運數 到x星球旅行的遊客都被髮給一個整數,作為遊客編號。 x星的國王有個怪癖,他只喜歡數字3,5和7。 國王規定,遊客的編號如果只含有因子

九屆藍橋JAVA語言 C題解_題9 小朋友崇拜圈)

JAVA語言 C組題解_題9 小朋友崇拜圈 題目 解題思路 題目 班裡N個小朋友,每個人都有自己最崇拜的一個小朋友(也可以是自己)。 在一個遊戲中,需要小朋友坐一個圈, 每個小朋友都有自己最崇拜的小朋友在他的右手邊。 求滿

九屆藍橋JAVA語言 C題解_題8 等腰三角形

JAVA語言 C組題解_題8 等腰三角形 題目 解題思路 題目 本題目要求你在控制檯輸出一個由數字組成的等腰三角形。 具體的步驟是: 先用1,2,3,…的自然數拼一個足夠長的串 用這個串填充三角形的三條邊

九屆藍橋JAVA語言 C題解_題3 字母陣列

JAVA語言 C組題解_題3 字母陣列 題目 解題思路 題目 仔細尋找,會發現:在下面的8x8的方陣中,隱藏著字母序列:“LANQIAO”。 SLANQIAO ZOEXCCGB MOAYWKHI BCCIPLJQ SLAN

九屆藍橋JAVA語言 C題解_題1 哪天返回

JAVA語言 C組題解_題1 哪天返回 題目 解題思路 題目 小明被不明勢力劫持。後被扔到x星站再無問津。小明得知每天都有飛船飛往地球,但需要108元的船票,而他卻身無分文。 他決定在x星戰打工。好心的老闆答應包食宿,第1

九屆藍橋JAVA語言 C題解_解2 猴子數香蕉

JAVA語言 C組題解_2 猴子數香蕉 題目 解題思路 題目 5只猴子是好朋友,在海邊的椰子樹上睡著了。這期間,有商船把一大堆香蕉忘記在沙灘上離去。 第1只猴子醒來,把香蕉均分成5堆,還剩下1個,就吃掉並把自己的一份藏起來

2018九屆藍橋真題JAVA語言 C真題題解答案(全)

第九屆藍橋杯省賽JAVA語言 C組題解(全) 題1 哪天返回 小明被不明勢力劫持。後被扔到x星站再無問津。小明得知每天都有飛船飛往地球,但需要108元的船票,而他卻身無分文。 他決定在x星戰打工。好心的老闆答應包食宿,第1天給他1元錢。 並

DFS(2018)九屆藍橋 C/C++ A九題)

第九題 題目標題:倍數問題【題目描述】眾所周知,小蔥同學擅長計算,尤其擅長計算一個數是否是另外一個數的倍數。但小蔥只擅長兩個數的情況,當有很多個數之後就會比較苦惱。現在小蔥給了你 n 個數,希望你從這

只含質因子的數(2018)九屆藍橋 C/C++ A四題)

第四題 題目標題:第幾個幸運數到x星球旅行的遊客都被髮給一個整數,作為遊客編號。x星的國王有個怪癖,他只喜歡數字3,5和7。國王規定,遊客的編號如果只含有因子:3,5,7,就可以獲得一份獎品。我們來看前

九屆藍橋 (7) -- 螺旋折線

標題:螺旋折線 如圖p1.png所示的螺旋折線經過平面上所有整點恰好一次。   對於整點(X, Y),我們定義它到原點的距離dis(X, Y)是從原點到(X, Y)的螺旋折線段的長度。   例如dis(0, 1)=3, dis(-2, -1)=9   給出

九屆藍橋(6) -- 遞增三元

標題:遞增三元組 給定三個整數陣列 A = [A1, A2, ... AN],  B = [B1, B2, ... BN],  C = [C1, C2, ... CN], 請你統計有多少個三元組(i, j, k) 滿足: 1. 1 <= i, j, k <= N

九屆藍橋(4)-- 測試次數

4.標題:測試次數   x星球的居民脾氣不太好,但好在他們生氣的時候唯一的異常舉動是:摔手機。 各大廠商也就紛紛推出各種耐摔型手機。x星球的質監局規定了手機必須經過耐摔測試,並且評定出一個耐摔指數來,之後才允許上市流通。   x星球有很多高聳入雲的高塔,剛好可