ジョブズ - アレイ(多数)

まず、デザインのアイデア

1、文書は(最後の学期でした、てFileWriter)新しい知識BufferWriterを読み出し動作。

処理のためのBigIntegerの使用:2、データが大きすぎるオーバーフローの問題、新しい知見です。

3、コースのアレイの前に問題の最大値。

第二に、タイトル

 

第三に、ソースコード

パッケージのテスト; 

輸入java.io.BufferedReader;
輸入java.io.BufferedWriter;
インポートのjava.io.File;
輸入java.io.FileInputStream;
輸入java.io.FileWriter;
インポートにjava.io.IOException;
輸入java.io.InputStreamReader;
インポートがjava.math.BigInteger;
インポートjava.util.Scanner; 

パブリック クラスshu1 {
 静的文字列S = "" ;
静的に=スキャナ新しいスキャナ(System.in)。
     公共の 静的な 無効メイン(文字列[] argsが)スロー{にIOExceptionの


                 chansheng(); 
                 リード(); 

               // のSystem.out.println(S); 
                文字列[] = s.split鳴っ( "[^( - 9--10-9)]");   // デジタルアレイ鳴っに分割して格納されたリードの列における



        //         int型値= 0;
          //         INT SUM = 0; 
                 のBigInteger値= 新しい新規のBigInteger(「0」); 
                 BigIntegerのSUM = 新しい新規のBigInteger(文字列.valueOf(鳴っ[0]));     // 配列SUMに最初の値に割り当てる

                 // SUM = Integer.parseInt(鳴っ[0]); 
               のためのINT I = 0; I <rang.length。 ++ I 
                     {
                         のInt A = value.compareTo(BigInteger.valueOf(0 ));
                          IF(A == 0 || A == -1 ){
                                 // 値= Integer.parseInt(鳴っ[I]);           // と共に使用した場合記録された値が0以下加算する必要はなく、値にこの時間は以下に等しい 
                                 値= 新しい新規のBigInteger(String.valueOf(鳴っ[I])); 
                             } そうでなければ{ 
                                 (value.add 新しい新規のBigInteger(文字列.valueOf(鳴っ[I])));
                                  // 値= Integer.parseInt +(鳴っ[I]);   // 値がまだ加算継続する値0よりも大きいです
                            }

                        IF(== sum.compareTo(値)-1){     // 最大値和に割り当てられたサブアレイ、合計値の値が値よりも大きい場合、その値の総和に等しい 
                                合計= 値; 
                        } 
                 } 
                のSystem.outは。 println( "最大値は" + SUM); 




             } 
      // ファイル方法読み取る
              パブリック 静的文字列を読み出し()をスローにIOException 
        { 

                     FileInputStreamのFIS = 新しい新規のFileInputStream(「D:\\文書\\テキスト・コード・ファイル\\アレイ。 TXT " ); 
                     BufferedReaderのBR = 新しい新しいをBufferedReader(新新InputStreamReaderの(FIS)); 
                     文字列のTEMP = "" ;
                      しばらく((TEMP = br.readLine())!= nullの
                           S = S + TEMP + "\" N-;    // 記事が文字列に格納されているファイルしますS 

                     fis.close(); // 近いファイル
                    br.close();
                         戻りS; 
                  } 

              //は、乱数を生成し、ファイル操作に書き込み
            パブリック 静的 ボイド chansheng()スローにIOExceptionが
    { 
                 int型); N;
                 System.out.println( "計算されたデータ量を入力してください"
                 N = in.nextInt()。
                 ファイルfile1 = 新しいファイル( "D:\\代码文件\\文本文件\\数组.TXT" ); 
         出てFileWriter = nullを試す{ 
            外に = 新しいてFileWriter(FILE1)。
        } キャッチ(IOExceptionを電子){ 
            e.printStackTrace(); 
        } 
                 BufferedWriterのBW = 新しいBufferedWriterの(アウト)。
                以下のためにINT iが= 0、I <N; I ++ INT
                    { 
                        int型 RAN =( )(Math.random()* 10000000) - (int型)(Math.random()* 100000000 ); 
                         BigIntegerのA = 新しいBigIntegerの(String.valueOf(RAN));
                        // bw.write(String.valueOf(RAN)+ "「); 
                         bw.write(String.valueOf(A)+ "" ); 
                     } 
                 bw.close()。

             } 

         }

 

おすすめ

転載: www.cnblogs.com/mac-13/p/12369646.html