java藍(lán)橋杯試題
因?yàn)橐獏⒓铀{(lán)橋杯,琢磨了一下算法,原來(lái)數(shù)學(xué)不好是這么難搞:下面是一些藍(lán)橋杯的試題(習(xí)題)。我用的是java ,我看網(wǎng)上的人多數(shù)用的是c語(yǔ)言。有更好的方法希望可以分享一下下。
1. 有50枚硬幣,可能包括4種類(lèi)型:1元,5角,1角,5分。已知總價(jià)值為20元。求各種硬幣的數(shù)量。
比如:2,34,6,8 就是一種答案。
而 2,33,15,0 是另一個(gè)可能的答案,顯然答案不唯一。
你的任務(wù)是確定類(lèi)似這樣的不同的方案一共有多少個(gè)(包括已經(jīng)給出的2個(gè))?
{ 可以看出這里的硬幣數(shù)量和存在著 1元×20+5角×10+1角×2+5分=400 這樣的關(guān)系的分類(lèi)才符合題目的要求}

2.四平方和(程序設(shè)計(jì))四平方和的定理又稱(chēng)拉格朗日定理:每個(gè)正整數(shù)都可以表示至多4個(gè)正整數(shù)的平方和。如果把0包括進(jìn)去,就可以表示為4個(gè)數(shù)的平方和。
比如:
5=0^2+0^2+1^2+2^2 7=1^2+1^2+1^2+2^2
對(duì)于一個(gè)給定的正整數(shù),可能存在多種平方和的表示法。要求你4個(gè)數(shù)排序: 0<=a<=b<=c<=d并對(duì)所有的可能表示法按 a,b,c,d為聯(lián)合主鍵升序排列,最后輸出第一個(gè)表示法。程序輸入為一個(gè)正整數(shù)N(N<5000000),要求輸出4個(gè)非負(fù)整數(shù),按從小到大排序,中間用空格分開(kāi),如,輸入5
則程序輸出:
0 0 1 2
資源約定:
峰值內(nèi)存消耗(含虛擬機(jī)) < 256M CPU消耗 < 3000ms
請(qǐng)嚴(yán)格按要求輸出,不要畫(huà)蛇添足地打印類(lèi)似:“請(qǐng)您輸入...” 的多余內(nèi)容。

(這里演示了沒(méi)有用return 的情況,結(jié)果會(huì)把多種情況輸出,我們的最終答案只要第一中升序結(jié)果,所以,做題時(shí)一定要看清題目,這里是給我自己的忠告。)
3.區(qū)間第K大的數(shù)
1.第一行輸入序列的個(gè)數(shù)n
2.第二行輸入一個(gè)序列
3.第三行輸入?yún)^(qū)間個(gè)數(shù)
4.輸入l ,r,k; l :區(qū)間的開(kāi)始 r : 區(qū)間的結(jié)束 k ; 第k個(gè)大的數(shù)
下標(biāo)從1開(kāi)始
import java.util.Scanner;
public class MainR {
/*尋找第k大的數(shù)*/
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];//存放區(qū)間的序列
for(i=0;i<w;i++){
c[i]=a[l-1];
l+=1;
if(l==(r+1))//當(dāng)l==r+1時(shí),區(qū)間序列達(dá)到最后一個(gè)
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();//序列的個(gè)數(shù)
//給定序列
int array[]=new int[n];
int i,j;
for(i=0;i<n;i++){
array[i]=in.nextInt();
}
//區(qū)間個(gè)數(shù)
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();
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot2整合Redis實(shí)現(xiàn)讀寫(xiě)操作
Redis,對(duì)于大家來(lái)說(shuō)應(yīng)該不陌生,是經(jīng)常使用的開(kāi)發(fā)技術(shù)之一。本文將結(jié)合實(shí)例代碼,介紹SpringBoot2整合Redis實(shí)現(xiàn)讀寫(xiě)操作,感興趣的小伙伴們可以參考一下2021-07-07
Spring MVC接口防數(shù)據(jù)篡改和重復(fù)提交
這篇文章主要為大家詳細(xì)介紹了Spring MVC接口防數(shù)據(jù)篡改和重復(fù)提交,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
java web將數(shù)據(jù)導(dǎo)出為Excel格式文件代碼片段
這篇文章主要為大家詳細(xì)介紹了java web將數(shù)據(jù)導(dǎo)出為Excel格式文件代碼片段,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
詳解Java對(duì)象轉(zhuǎn)換神器MapStruct庫(kù)的使用
在我們?nèi)粘i_(kāi)發(fā)的程序中,為了各層之間解耦,一般會(huì)定義不同的對(duì)象用來(lái)在不同層之間傳遞數(shù)據(jù)。當(dāng)在不同層之間傳輸數(shù)據(jù)時(shí),不可避免地經(jīng)常需要將這些對(duì)象進(jìn)行相互轉(zhuǎn)換。今天給大家介紹一個(gè)對(duì)象轉(zhuǎn)換工具M(jìn)apStruct,代碼簡(jiǎn)潔安全、性能高,強(qiáng)烈推薦2022-09-09
Springboot-注解-操作日志的實(shí)現(xiàn)方式
這篇文章主要介紹了Springboot-注解-操作日志的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Java關(guān)于桶排序的知識(shí)點(diǎn)總結(jié)
這篇文章給大家總結(jié)了關(guān)于JAVA中J桶排序的相關(guān)知識(shí)點(diǎn)和用法分享,有興趣的讀者跟著學(xué)習(xí)下。2018-04-04
IDEA運(yùn)行SpringBoot項(xiàng)目的圖文教程
本文主要介紹了IDEA運(yùn)行SpringBoot項(xiàng)目的圖文教程,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05
SpringBoot開(kāi)發(fā)存儲(chǔ)服務(wù)器實(shí)現(xiàn)過(guò)程詳解
這篇文章主要為大家介紹了SpringBoot開(kāi)發(fā)存儲(chǔ)服務(wù)器實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12

