第六屆藍橋杯省賽
一、三角形面積
如【圖1】所示。圖中的所有小方格面積都是1。
那麼,圖中的三角形面積應該是多少呢?
請填寫三角形的面積。不要填寫任何多餘內容或說明性文字。
分析:(該正方形的面積減去其他三個三角形的面積即可)
程式碼如下:
package s_1;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.print(8*8-2*8/2-4*6/2-4*8/2);
}
}
二、立方變自身
立方變自身
觀察下面的現象,某個數字的立方,按位累加仍然等於自身。
1^3 = 1
8^3 = 512 5+1+2=8
17^3 = 4913 4+9+1+3=17
...
請你計算包括1,8,17在內,符合這個性質的正整數一共有多少個?
請填寫該數字,不要填寫任何多餘的內容或說明性的文字。
程式碼如下:
package s_2;
public class Main {
/**
* 答案:6個
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<=100000;i++){
int s=i*i*i;
//將基本型別轉換為string型別。
String a=Integer.toString(s);
int res=0;
for(int j=0;j<a.length();j++){
res+=a.charAt(j)-'0';
}
if(res==i)
System.out.println(i);
}
}
}
三、三羊獻瑞(切記加法運算首位不為0)
三羊獻瑞
觀察下面的加法算式:
祥 瑞 生 輝
+ 三 羊 獻 瑞
-------------------
三 羊 生 瑞 氣
(如果有對齊問題,可以參看【圖1.jpg】)
其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。
請你填寫“三羊獻瑞”所代表的4位數字(答案唯一),不要填寫任何多餘內容。
分析:
由於 "三"是數字的首位,低位的數字進位後必然為1,所以能先確定 ”三“為1。
1).直接進行刪選只要每個數的首位不為0,即可。程式碼的方式為1)的方式。
2).更方便的是直接以e為1作為條件進行刪選。
程式碼如下:
package s_3;
public class Main {
/*
*
*答案為 1085
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int a=0;a<=9;a++){
for(int b=0;b<=9;b++){
for(int c=0;c<=9;c++){
for(int d=0;d<=9;d++){
for(int e=0;e<=9;e++){
for(int f=0;f<=9;f++){
for(int g=0;g<=9;g++){
for(int h=0;h<=9;h++){
if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h&&
b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h
&&c!=d&&c!=e&&c!=f&&c!=g&&c!=h&&
d!=e&&d!=f&&d!=g&&d!=h&&
e!=f&&e!=g&&e!=h&&
f!=g&&f!=h&&
g!=h){
int m=a*1000+b*100+c*10+d;
int n=e*1000+f*100+g*10+b;
int k=e*10000+f*1000+c*100+b*10+h;
if(m+n==k){
if(e!=0&&a!=0){
System.out.print(e);
System.out.print(f);
System.out.print(g);
System.out.print(b);
System.out.println();
break;
}
}
}
}
}
}
}
}
}
}
}
}
}
四、迴圈節長度
兩個整數做除法,有時會產生迴圈小數,其迴圈部分稱為:迴圈節。
比如,11/13=6=>0.846153846153..... 其迴圈節為[846153] 共有6位。
下面的方法,可以求出迴圈節的長度。
請仔細閱讀程式碼,並填寫劃線部分缺少的程式碼。
public static int f(int n, int m)
{
n = n % m;
Vector v = new Vector();
for(;;)
{
v.add(n);
n *= 10;
n = n % m;
if(n==0) return 0;
if(v.indexOf(n)>=0) _________________________________ ; //填空
}
}
注意,只能填寫缺少的部分,不要重複抄寫已有程式碼。不要填寫任何多餘的文字。
思路:
所用到的函式:
此題目比較特殊,在vector中的第0位,為其第一次出現的位置。
但仍應該考慮全面一些,此題在數11之前還有其他的數字,所以應用當前vector的長度減去其第一次出現時的下標。
程式碼如下:
package s_4;
import java.util.Vector;
public class Main {
public static int f(int n, int m)
{
n = n % m;
Vector v = new Vector();
for(;;)
{
v.add(n);
n *= 10;
n = n % m;
if(n==0) return 0;
if(v.indexOf(n)>=0) return v.size()-v.indexOf(n); //填空
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(f(11,13));
System.out.println(f(1,3));
}
}
五、
九陣列分數
1,2,3...9 這九個數字組成一個分數,其值恰好為1/3,如何組法?
下面的程式實現了該功能,請填寫劃線部分缺失的程式碼。
public class A
{
public static void test(int[] x)
{
int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3];
int b = x[4]*10000 + x[5]*1000 + x[6]*100 + x[7]*10 + x[8];
if(a*3==b) System.out.println(a + " " + b);
}
public static void f(int[] x, int k)
{
if(k>=x.length){
test(x);
return;
}
for(int i=k; i<x.length; i++){
{int t=x[k]; x[k]=x[i]; x[i]=t;}
f(x,k+1);
_______________________________________ // 填空
}
}
public static void main(String[] args)
{
int[] x = {1,2,3,4,5,6,7,8,9};
f(x,0);
}
}
注意,只能填寫缺少的部分,不要重複抄寫已有程式碼。不要填寫任何多餘的文字。
答案為:
{int t=x[k]; x[k]=x[i]; x[i]=t;}
六、加法變乘法
我們都知道:1+2+3+ ... + 49 = 1225
現在要求你把其中兩個不相鄰的加號變成乘號,使得結果為2015
比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
就是符合要求的答案。
請你尋找另外一個可能的答案,並把位置靠前的那個乘號左邊的數字提交(對於示例,就是提交10)。
注意:需要你提交的是一個整數,不要填寫任何多餘的內容。
程式碼如下:
package s_6;
public class Main {
/**
* 答案為:16
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
由於為遞增,並且不重複的狀態。
for(int i=1;i<=49;i++){
for(int j=i+1;j<=49;j++){
for(int k=j+1;k<=49;k++)
for(int l=k+1;l<=49;l++){
int m=1225-i-j-k-l;
/*
* 相鄰那個條件很重要
* j==i+1&&l==k+1 !!!!
*/
if(m+i*j+k*l==2015&&j==i+1&&l==k+1)
System.out.println(i);
}
}
}
}
}
相關推薦
第六屆藍橋杯省賽試題--壘骰子 解題報告
PS: 關於本題演算法的優化演算法已經發表, 請檢視疊骰子( 以矩陣方法實現 ) 原題: 賭聖atm晚年迷戀上了壘骰子,就是把骰子一個壘在另一個上邊,不能歪歪扭扭,要壘成方柱體。 經過長期觀察,atm 發現了穩定骰子的奧祕:有些數字的面貼著會互相排斥! 我們先來規範一下骰子
第六屆藍橋杯省賽
一、三角形面積 如【圖1】所示。圖中的所有小方格面積都是1。 那麼,圖中的三角形面積應該是多少呢? 請填寫三角形的面積。不要填寫任何多餘內容或說明性文字。 分析:(該正方形的面積減去其他三
第六屆-藍橋杯省賽-生命之樹
10、生命之樹 在X森林裡,上帝建立了生命之樹。他給每棵樹的每個節點(葉子也稱為一個節點)上,都標了一個整數,代表這個點的和諧值。上帝要在這棵樹內選出一個非空節點集S,使得對於S中的任意兩個點a,b,都存在一個點列 {a, v1, v2, ..., vk, b} 使得這個點
藍橋測試1->2015年第六屆藍橋杯省賽
1.StringInGrid函式會在一個指定大小的格子中列印指定的字串。 要求字串在水平、垂直兩個方向上都居中。 如果字串太長,就截斷。 如果不能恰好居中,可以稍稍偏左或者偏上一點。 下面的程式實現這個邏輯,請填寫劃線部分缺少的程式碼。 #include <s
第六屆藍橋杯省賽試題--壘骰子 以矩陣的方法實現 解題報告
本貼宣告: 關於這道題的基本解法, 我在之前曾經發表過, 以動態規劃的方式在O(N)的時間複雜度內求解, 但對於資料規模為10^9的資料而已, O(N)顯然是不夠的, 當時我受困良久. 但幸運的是, 某網友給了我一個萬分有用的建議, 以矩陣的方式的進行求解. 當我實現以後,
第六屆藍橋杯省賽C/C++B組
程式設計的大題因為沒有辦法在OJ上提交,不知道是否能過100%的資料,但是大致就是這個意思。1.獎券數目有些人很迷信數字,比如帶“4”的數字,認為和“死”諧音,就覺得不吉利。雖然這些說法純屬無稽之談,但有時還要迎合大眾的需求。某抽獎活動的獎券號碼是5位數(10000-9999
第六屆藍橋杯省賽Java語言C組_移動距離
移動距離 X星球居民小區的樓房全是一樣的,並且按矩陣樣式排列。其樓房的編號為1,2,3... 當排滿一行時,從下一行相鄰的樓往反方向排號。 比如:當小區排號寬度為6時,開始情形如下: 1 2 3
第六屆藍橋杯省賽JAVA-B 全解析
手賤,提交錯了兩個順序,估計gg了 第一題: 我坑爹的竟然想到了用海倫公式,算出來24.92708569439206 唉,直接減去小的不就完事了啊````` 答案:8x8-(8x4)/2-4x6/2-8x2/2=28 第二題: 立方變自身 觀察下面的現象,某個數字的立方,
第六屆藍橋杯省賽C/C++B組 壘骰子
壘骰子 賭聖atm晚年迷戀上了壘骰子,就是把骰子一個壘在另一個上邊,不能歪歪扭扭,要壘成方柱體。 經過長期觀察,atm 發現了穩定骰子的奧祕:有些數字的面貼著會互相排斥! 我們先來規範一下骰子:1 的對面是 4,2 的對面是 5,3 的對面是 6。 假設有 m 組互斥現象
2015年第六屆藍橋杯省賽(C/C++ B組)解題報告
第1題:統計不含4的數字 題目大意 統計10000至99999中,不包含4的數值個數。 題解 (@『落』常笑鷹 提供)直接推匯出數學公式 最高位除了0、4不能使用,其餘8個數字(1,2,3,5,6,7,8,9)均能使用,剩下的四位(
【暴力自動生成排列】(2015)第六屆藍橋杯省賽 C/C++ B組 題解(第三題)
第三題題目三羊獻瑞觀察下面的加法算式: 祥 瑞 生 輝 + 三 羊 獻 瑞------------------- 三 羊 生 瑞 氣(如果有對齊問題,可以參看【圖1.jpg】)其中
2015年第六屆藍橋杯省賽A組(C/C++)
部分轉載自:http://blog.csdn.net/summonlight/article/details/61920048還有:https://zhidao.baidu.com/question/310414478.html1. 方程整數解方程: a^2 + b^2 +
第六屆 藍橋杯 省賽 三羊獻瑞
三羊獻瑞 觀察下面的加法算式: 祥 瑞 生 輝 + 三 羊 獻 瑞 ------------------- 三 羊 生 瑞 氣 (如果有對齊問題,可以參看【圖1.jpg】) 其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。 請你填寫“三
第五屆藍橋杯省賽JavaB組第六題奇怪的分式
標題:奇怪的分式 上小學的時候,小明經常自己發明新演算法。一次,老師出的題目是: 1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (參見圖1.pn
第八屆藍橋杯省賽 分巧克力
ret else pac AC 時間復雜度 輸出格式 names std mil 問題描述 兒童節那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。 小明一共有N塊巧克力,其中第i塊是Hi x Wi的方格組成的長方形。 為了公平起見,小明需要從這N塊
第七屆藍橋杯省賽C/C++B組賽題及答案
part 實現 void 整數 三層 在一起 idt mage 算法; 第一題 【題目】 煤球數目 有一堆煤球,堆成三角棱錐形。具體:第一層放1個,第二層3個(排列成三角形),第三層6個(排列成三角形),第四層10個(排列成三角形),....如果一共有100層,共有多少個煤
藍橋杯:2017年第八屆藍橋杯省賽B組第十題—PREV-40K倍區間
膜拜這位大佬 做法:首先統計字首和sum[i] 表示A1+A2+…+Ai.所以對於任意一段區間[l,r]的和就是sum[r]-sum[l-1].如果要保證這個區間和為K倍數就是:(sum[r]-sum[l-1])%k == 0.變形後就是:sum[r]%k==sum[l-1]%k,
第七屆藍橋杯省賽 Java 平方怪圈
平方怪圈 如果把一個正整數的每一位都平方後再求和,得到一個新的正整數。 對新產生的正整數再做同樣的處理。 如此一來,你會發現,不管開始取的是什麼數字, 最終如果不是落入1,就是落入同一個迴圈圈。 請寫出這個迴圈圈中最大的那個數字。 請填寫該最大數字。 注意:你提
第八屆藍橋杯省賽javaB組題目解析
作者自己做完之後發現省賽的一幕其實是不難的,說實話,自己覺得題目難度還沒有PAT甲級的難度高。 而且作者做了這麼些天之後發現了,PAT甲級主要喜歡考資料結構方面的知識,而藍橋杯則喜歡考演算法這一類的,但是藍橋杯的演算法題目有些又不是很正規,因為作者有好些題目都是
2015第六屆藍橋杯國賽決賽c/c++本科B組試題總結及解題答案
1. 積分之迷 小明開了個網上商店,賣風鈴。共有3個品牌:A,B,C。 為了促銷,每件商品都會返固定的積分。 小明開業第一天收到了三筆訂單: 第一筆:3個A + 7個B + 1個C,共返積分:315 第二筆:4個A + 10個B + 1個C,共返積分:420