package 一; import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.*; import java.util.Scanner; import java.util.StringTokenizer; import java.io.BufferedReader; import java.io.FileOutputStream; import java.lang.Math; import java.io.IOException; import java.math.BigDecimal; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; import java.util.Random; public class Maxshuzu { public static void main(String[] args)throws IOException { File newFile = new File("D:\\Shu.txt");//文本文档的位置 if(!newFile.exists()) { System.out.println("文件无法打开!"); } FileOutputStream out = new FileOutputStream(newFile); String[] S=new String[100000]; BigDecimal[] S1=new BigDecimal[100000];//原串 BigDecimal[] S2=new BigDecimal[100000];//现有 System.out.println("请输入您要输入的数目:"); int a=0;//总数 Scanner scan=new Scanner(System.in); a=scan.nextInt(); System.out.println("请输入整型数字:"); for(int i=0;i<a;i++) { S[i]=" "; } for(int i=0;i<a;i++) { String s1; s1=scan.next(); S1[i]=new BigDecimal(s1); }int l=0; for(int i=0;i<a;i++) { System.out.println("第"+(i+1)+"个是:"+S1[i]); } for(int i=0;i<a;i++) { out.write(String.valueOf(S1[i]).getBytes()); out.write(String.valueOf(S[i]).getBytes()); } int O=0; for(int i=0;i<a;i++) { int i1=i+1; int o;o=0; for(int j=i+1;j<a;j++) { O=O+1; BigDecimal m=S1[i]; BigDecimal n=S1[j]; BigDecimal N=new BigDecimal(0);BigDecimal M=new BigDecimal(0); o=o+1; if(o==1) { M=n.add(m); S2[O-1]=M; } else { N=S2[O-2].add(n); S2[O-1]=N; System.out.println(n); } l=O; } }BigDecimal max=BigDecimal.valueOf(0); max=S2[0]; int m0=0; int M0=0; for(int i=0;i<l-1;i++) { BigDecimal m1=BigDecimal.valueOf(0); BigDecimal m2=BigDecimal.valueOf(0); m1=S2[i]; m2=S2[i+1]; int q=2; if(max.compareTo(m1)==-1)max=m1; if(max.compareTo(m2)==-1)max=m2; System.out.println("是否要回滚,回滚-1,不-2"); q=scan.nextInt(); for(int i1=0;i1<a;i1++) { for(int i2=i1+1;i2<a;i2++) { M0=M0+1; System.out.println("第"+M0+"次"); System.out.println("已经比较了"+M0+"个子数组"); System.out.println("从第"+(i1+1)+"到第"+(i2+1)); System.out.println("最大子数组和:"+max); System.out.println('\n'); try{Thread.sleep(1000);}catch(Exception e){} if(q==1) {System.out.println("请输入回退到第几步:"); M0=scan.nextInt(); M0=M0-1; System.out.println(M0); i2=M0; } } } } if(max.compareTo(S1[0])==-1) max=S1[0]; if(max.compareTo(S1[a-1])==-1)max=S1[a-1]; System.out.println("最大数"+max); out.write(String.valueOf("最大数:").getBytes()); out.write(String.valueOf(max).getBytes()); out.flush(); out.close(); FileReader reader=new FileReader("D:\\Shu.txt"); BufferedReader br=new BufferedReader(reader); String line; while((line=br.readLine())!=null) { System.out.println(line); } } }