第3回ブルーブリッジ杯JAVA組C組国試合問題解
7837 ワード
余計なことは言わないで、直接コードに行きます!1.【結果記入】(11点満点)
分析と解答:国赛はこのような问题を见て私は最も楽しくて、これは1つのとても人気のある知识の点なため、全列、全列は多くの种类に分けて、この问题は简単に辞书の顺番を使わないで出力して、だから交换法で全列はとても楽にやり遂げることができて、もちろん试験场の上で时间に余裕があれば9阶の暴力の循环を组むことができて、これは私が青い橋の杯を塗り始めたばかりの時によく使うこの技で、もし一時的に全列のテンプレートを忘れたらどうやってこの救命を使うことができますか?しかし、どれも漏らさないように注意してください.
コード:
答え:336
2.【コード空欄】(12点満点)
【注意】欠落している部分だけを記入し、既存のコードを書き写さないでください.入力されたコードは1つの文を超えない(文にセミコロンは含まれない)入力されたコードの長さは256文字を超えない.答えは「解答.txt」に書いてあります.ここに書かないでください.
分析と解答:(1)ここに試験点があって、私は最初この問題をやり遂げて少し蒙って、この試験点を熟知しなければならなくて、実はこの文字列を抽出して、難しくないsubstring()方法は文字列のサブ文字列を返します.beginIndex–開始インデックス(含む)、インデックスは0から開始します.endIndex–インデックスを終了します(含まない).(2)2つ目のポイントも同じ考えで、奇数に注意すればいいので、上下対称に考えやすい
参考答案:i-step+1,i+step s.charAt(i-step)!=s.charAt(i+step+1)
3.【プログラミング問題】(18点満点)
【入力・出力フォーマット要件】
5 L100R50R10 3LLL5RR4L12 LL 100R 5L5L5L5
102.96 9.06 0.00 100.00 0.00
【注意】
分析と解答:この问题はシミュレーションの问题で、省赛那道兰顿アリと少し似ていますが、兰顿アリは简単に文字列を処理しなくてもいいです.この问题には文字列を処理する难点があります.方向と前進の2つの道をうまく処理すればいいです.
コード:
4.【プログラミング問題】(21点満点)
【入力・出力フォーマット要件】
2 R12C4 R5C255
D12 IU5
【注意】
分析と解答:私は今アナログEXECLのプログラミングの问题を见て私はすべて泣きそうになって、何度もしたことがなくてほとんど正しいことをしたことがなくて、当初省试合の1つの问题が1つの彻夜してぼんやりしていることを考えていないことを表明して、この问题はまだ比较的に简単で、対応するマークが比较的に鲜明なため、デバッグの时に集まってくれればいいです.
コード:
5.【プログラミング問題】(34点満点)
【入力・出力フォーマット要件】
0110111 1101110 0110111 1101110 1110110
【注意】
分析と解答:更新待ち:
コード:更新対象:
:
☆☆☆ + ☆☆☆ = ☆☆☆
1 ~ 9 。
?
173 + 286 = 459
295 + 173 = 468
173 + 295 = 468
183 + 492 = 675
!
:
111 + 222 = 333 !
!
:1~9 , !
:
“0”!
:
。
!
:
!
, “ .txt” !
分析と解答:国赛はこのような问题を见て私は最も楽しくて、これは1つのとても人気のある知识の点なため、全列、全列は多くの种类に分けて、この问题は简単に辞书の顺番を使わないで出力して、だから交换法で全列はとても楽にやり遂げることができて、もちろん试験场の上で时间に余裕があれば9阶の暴力の循环を组むことができて、これは私が青い橋の杯を塗り始めたばかりの時によく使うこの技で、もし一時的に全列のテンプレートを忘れたらどうやってこの救命を使うことができますか?しかし、どれも漏らさないように注意してください.
コード:
public class Main03JC01 {
public static int ans=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]={1,2,3,4,5,6,7,8,9};
dfs(0,a);
System.out.println(ans);
}
public static void dfs(int k,int res[]){
if(k==res.length){
int a=res[0]*100+res[1]*10+res[2];
int b=res[3]*100+res[4]*10+res[5];
int c=res[6]*100+res[7]*10+res[8];
if(a+b==c){
ans++;
return;
}
}
for(int i=k;i
答え:336
2.【コード空欄】(12点満点)
/* “abcba” “c” ; “abba” 。 。 , 1 , 。
。 ( ), , 。 :“abcdeefghhgfeiieje444k444lmn” :“efghhgfe”
, , , , 。
*/
// ( )
public static String getMaxMirrorString(String s)
{
String max_s = ""; //
for(int i=0; i max_s.length()) max_s = s1;
if(s2.length() > max_s.length()) max_s = s2;
}
return max_s;
}
【注意】欠落している部分だけを記入し、既存のコードを書き写さないでください.入力されたコードは1つの文を超えない(文にセミコロンは含まれない)入力されたコードの長さは256文字を超えない.答えは「解答.txt」に書いてあります.ここに書かないでください.
分析と解答:(1)ここに試験点があって、私は最初この問題をやり遂げて少し蒙って、この試験点を熟知しなければならなくて、実はこの文字列を抽出して、難しくないsubstring()方法は文字列のサブ文字列を返します.beginIndex–開始インデックス(含む)、インデックスは0から開始します.endIndex–インデックスを終了します(含まない).(2)2つ目のポイントも同じ考えで、奇数に注意すればいいので、上下対称に考えやすい
参考答案:i-step+1,i+step s.charAt(i-step)!=s.charAt(i+step+1)
3.【プログラミング問題】(18点満点)
。 , 。 , 3 : ( L), ( R), ( )。
, :
15L10R5LRR10R20
, 15 , , 10 , ,...
, , 。
: , , 。
【入力・出力フォーマット要件】
n(n<100), n 。
n 。 L、R ( 0~100 )
256 。
n 。
。 2 。
: :
5 L100R50R10 3LLL5RR4L12 LL 100R 5L5L5L5
:
102.96 9.06 0.00 100.00 0.00
【注意】
! !
, , 【 】 “ .txt” 。
。
package 。
JDK1.5 。 1.6 。
分析と解答:この问题はシミュレーションの问题で、省赛那道兰顿アリと少し似ていますが、兰顿アリは简単に文字列を処理しなくてもいいです.この问题には文字列を処理する难点があります.方向と前進の2つの道をうまく処理すればいいです.
コード:
public class Main03JC03 {
public static String left="ULDR";
public static String right="URDL";
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
scan.nextLine();
for(int i=0;i='0'&&order<='9'){
int t=order-'0';
// System.out.println("method1");
while(i='0'&&a.charAt(i+1)<='9')){
t=t*10+(a.charAt(i+1)-'0');
i++;
}
//System.out.print(t+" ");
if(turn.equals("U")){
x=x-t;
t=0;
}else if(turn.equals("L")){
y=y-t;
t=0;
}else if(turn.equals("R")){
y=y+t;
t=0;
}else if(turn.equals("D")){
x=x+t;
t=0;
}
}else{
// System.out.println("method2");
if(order=='L'){
if(turn.equals("U")){
turn="L";
}else if(turn.equals("L")){
turn="D";
}else if(turn.equals("D")){
turn="R";
}else if(turn.equals("R")){
turn="U";
}
}else{
if(turn.equals("U")){
turn="R";
}else if(turn.equals("R")){
turn="D";
}else if(turn.equals("D")){
turn="L";
}else if(turn.equals("L")){
turn="U";
}
}
//System.out.println(turn);
}
}
return Math.sqrt(x*x+y*y);
}
}
4.【プログラミング問題】(21点満点)
Excel 。 。 : 12 4 :“D12”, 5 255 “IU5”。
,Excel , RC 。 12 4 :“R12C4”, 5 255 “R5C255”。
: , RC 。
【入力・出力フォーマット要件】
n(n<100), n 。
n RC Excel 。
n , 。
: :
2 R12C4 R5C255
:
D12 IU5
【注意】
! !
, , 【 】 “ .txt” 。
。
package 。
JDK1.5 。 1.6 。
分析と解答:私は今アナログEXECLのプログラミングの问题を见て私はすべて泣きそうになって、何度もしたことがなくてほとんど正しいことをしたことがなくて、当初省试合の1つの问题が1つの彻夜してぼんやりしていることを考えていないことを表明して、この问题はまだ比较的に简単で、対応するマークが比较的に鲜明なため、デバッグの时に集まってくれればいいです.
コード:
import java.util.Scanner;
public class Main03JC04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
scan.nextLine();
for(int i=0;i='0'&&a.charAt(i+1)<='9')){
t=t*10+a.charAt(i+1)-'0';
i++;
}
resNumber=t+"";
}else if(a.charAt(i)=='C'){
int t=a.charAt(i+1)-'0';
i++;
while(i='0'&&a.charAt(i+1)<='9')){
t=t*10+a.charAt(i+1)-'0';
i++;
}
resWord="";
while(t>0){
char res=(char) ('A'-1+t%26);
t/=26;
resWord=res+resWord;
}
}
}
return resWord+resNumber+"";
}
}
5.【プログラミング問題】(34点満点)
A,B,C,D,E 5 , 2 。
, 。
, , :
1. 3 ( : )。
2. , 3 。
3. , A B C D 2 。
4. B D E 。
5. A E 。
6. A C 4 ( )。
: , ABCDE 。 1, 0
A B C D E 1 , 。
【入力・出力フォーマット要件】
, 。
7x5 。 1 0 。
, 。
A,B,C,D,E 。
。
, 。 ( )。
0110111 1101110 0110111 1101110 1110110
【注意】
! !
, , 【 】 “ .txt” 。
。
package 。
JDK1.5 。 1.6 。
分析と解答:更新待ち:
コード:更新対象: