PAT Bノート

まず、  入力と出力

1.Scanner

インポートjava.util.Scanner; 

パブリック クラスメイン{
     公共 静的 ボイドメイン(文字列[]引数){ 
        スキャナ = 新しいスキャナ(System.in)。
        一方、(in.hasNextInt()){
             int型 A = in.nextInt()。
            INT B = in.nextInt()。
            System.out.println(A + B)。
        } 
    } 
}

2.BufferedReader

輸入java.io.BufferedReader;
輸入java.io.InputStreamReader。
インポートにjava.io.IOException; 

パブリック クラスメイン{
     公共 静的 ボイドメイン(文字列[]引数)がスローにIOException { 
        BufferedReaderのBR = 新しい BufferedReaderの(新たにInputStreamReader(System.in))を、
        文字列[] = br.readLine()スプリット(」 " )。
        INT A = Integer.parseInt([0 ])。
        INT B = Integer.parseInt([1 ])。
        System.out.println(A + B)。
    } 
}

3.出力フォーマットの問題:

①7766 - 6677 = 1089

上記により、所望の出力形式、次のコードは、トラブルストリングアッセンブリを除去する、使用することができます

System.out.printf( "%04D  - %04D =%04D N \"、I、D、数)。

注意:タイトル4つのデジタル/ ID 5つのなどの言葉は、私たちは、出力形式、フロント0のデジタル出力を制御するために注意を払うとき

2桁複雑に②出力

System.out.printf( "%2F%の.2fi。"、整数、モデル)。

③String.format()とtoCharArray()を使用し

char型 []配列= String.Formatの( "%04D"、数).toCharArray();

④時間依存:

int型の時間=時間/ 3600 ;
INT分=時間%60分の3600 ;
INT第二時間= 60% 
System.out.printf( "%02D:%02D:%02Dを\ n"、時、分、秒)。// 午前12時42分59秒

INTライン=(INT)(行* 0.5 + 0.5); //列の数は、行数の50%である。最も近い整数に丸め⑤

4.入力と出力の数が問題を検討します:

①全ての入力が対象の要件を満たしていなかった場合は何が出力する、極端なケースを考えてみましょう

②対象は、特定の最初の数は前記より小さい覚えていないと判定されたサイズによって必要とされる第二の数、

第二に、  一般的に使用される機能

判断是否是素数

パブリック 静的 ブール isPrime(int型N){
     場合(N <2 ){
         戻り 
    } そう であれば(N == 2 ){
         戻り 
    } {
         ためint型 I = 2; iは++; iはMath.sqrt(n)は< ){
             場合(N%iは== 0 ){
                 戻り 
            } 
        } 
    } 
    戻り 
}

最大公約数

プライベート 静的 長い GCD(長い長いB){
     戻り B == 0?A:GCD(B、%のB)。
}

第三に、  一般的に使用される方法や注意事項

1.配列の添字を使用します:

1005:タグ配列添字の計算された数を使用して、数を計算確認

1007:数(1〜N)に対応する配列のインデックス値を用いて素数であるかどうかを示す関連する素数

1038:お問い合わせの割合、0から100までによるスコア指定した学生の数に応じて、あなたは配列の添字を使用することができます

1065:IDは、配列インデックスを使用することによって、5桁情報カップルをアーカイブすることができ

2.文字列)(StringBuilderのSB =新しいStringBuilderのを使用して、追加/変更する必要があります。

sb.toString()(不可逆的!)の文字列SBに変換することができます

3.より多く、A + B> CはCB> Aに変換することができる場合

4.最初の素数約10,000 105000でを

5.char問題、取得したデジタル値を減算覚え '9' から '0' '0';文字が単一Character.getNumericValueの値を取得するために使用されている()メソッドは、0〜9 48〜57、A〜Z 65 122〜90、〜のZ 97

6.String方法:サブストリング()/のcharAt()/のindexOf()

7.Arrays.sort(); / Collections.sort();

8. intデータ型は、32ビット整数(10桁)2の補数表現を締結あります。

最小値は、-2147483648(-2 ^ 31)、最大値は2,147,483,647(2 ^ 31--1)です。

9.長いデータ・タイプは、64ビット符号付き整数(19桁)のバイナリ表現を補完です。

最小値は-9,223,372,036,854,775,808(-2 ^ 63)です。

最大値は9,223,372,036,854,775,807(2 ^ 63-1)です。

10.正規表現:

      s.split(「[E.]」); - 「」>マッチまたは 『E』は、科学的表記法の対象の使用にも関します

      NUMS [I] .matches( "^ - ?[0-9] *(\\ [0-9] {0,2})$。?") - >小数点以下2桁を一致合理予約

      s.matches( "[0-9] {1}")//キー:純粋にデジタル方法と一致する一致します

toCharArrayは、文字で表される文字アレイ11のRGB色処理に変換法を用いて

12.次に、文字列を与えられ、Qの総数はPが左PAT番号の数で乗算され、PAT、固定Aを形成してもよく、A T Aを形成することができる現在の右に番号など、統計の総数であります

13.Stringはintに変換/パッケージのロング/ double型を直接Integer.parseInt / Double.parseDouble / Long.parseLong変換することができ、文字列のvalueOf()メソッドを取得することができ、チャーはCharacter.getNumericValue()メソッドを使用intに変換

14進数の質問:整数B = Integer.valueOf( "444"、16); //進

I 1は、この状態を「ビット1」を確保することであるとして説明15コメントを書くことが重要な点は、

16.終了条件は、休憩を書いたり、継続して覚えているときを決定

静的INTとそれを囲む8点の17計算、[] []

静的INT DIR [] [] =新しいINT [] [] {{ - 1、-1}、{-1、0}、{-1、1}、{0,1}、{1,1}、{ 1、0}、{1、-1}、{0、-1}}。

エラーがBufferedReaderのスキャナエラーを使用しようとするように変更されたと改行について読むことができる18

19.switch文言は、このことを覚えています

スイッチ(ANS){
     場合 "A" 
        RES [I] = 1 破ります;
    ケース "B" 
        RES [I] = 2 ;
        破ります;
    場合 "C" 
        RES [I] = 3 ;
        破ります;
    場合 "D" 
        RES [I] = 4 破ります;
    デフォルト休憩; 
}

キャリー和> = 10があること20.注

変更に忘れてコピーすることが可能であるため、指数のこと21.注意

第四に、  25 -ポイントタイトル

複数のデータオブジェクト、および1次元/ 2次元アレイのアレイに関連する問題は、格納またはマップすることは容易ではない場合は1を、新しいクラスは、データオブジェクトに記憶されています。

2.最終的な出力は、クラスを許可する、データをソートする必要がある場合

クラスケーキは、Comparable <ケーキ>を実装します

以下に示すように、同時に、compareToメソッドをオーバーライド

@Override
 公共 int型のcompareTo(ケーキC){
     返す この .VALUE> c.valueを?-1:1 ; 
}

Collections.sort(リスト)によって;、リスト[0]、すなわち、ソート値を下降することにより、最大値に格納された値であります

@Override
 公共 INT のcompareTo(学生S){
     場合この .gScore < s.gScore){
         リターン 1 
    } そう であればこの .gScore> s.gScore){
         戻り -1 
    } {
         戻り 、この .name.compareTo(s.name)を、// 姓名升序
    } 
}

Collections.sort(リスト)によって;、リスト[0]に格納されているgScore最大値、すなわち、gScore降順にソートする場合は昇順にgScore同じ、押し名前(例えば、第1のD W)

3.リストのタイトル

クラスノード{
     int型のアドレス。
    int型データ;
    int型の次; 
    ノード(int型のアドレス、int型データ、INT 次){
         この .address = アドレス。
        この .DATA = データ。
        この .next = 次回。
    } 
}

五、20190908PAT Bテストの概要

最初の質問は簡単、迅速に行われます。検査終了まで、1ポイントを差し引か2つ目の質問は、何が間違って見つけることができませんでした。第三の問題は、m個からnまでの範囲、境界値が取得されることに留意されたいです。第四の問題は、それが8ポイントを控除しなければならないので、順序は、インクリメント出力の出力Aによって横断される、インクリメント出力nで必要な出力です。最後の一つは、共通の分母は何も問題を見つける方法を覚えて、同様のトピックで前に行われ、リストのタイトルです。追加:私は控除の6点を使用し、最後の質問のJava残業、残業にあまりにも簡単そうでない場合は、C / C ++を試すか、使用しています。

おすすめ

転載: www.cnblogs.com/nomad1c/p/11495079.html