package com.sum1; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Sum { public Sum() { // TODO 自动生成的构造函数存根 } static Scanner shuru =new Scanner(System.in); public static void main(String[] args) { // TODO 自动生成的方法存根 int a[]= {1,2,3,4,5,6,7,8}; int b=max_int_Array(a); System.out.println("最后答案:"+b); } public static int max_int_Array(int a[]) { int sum=0; int max=0; int start=0; int end=0; int number=0; String s=""; String n=""; String n1=""; List<String> list =new ArrayList<String>(); for(int i=0;i<a.length;i++) { n1="第"+(i+1)+"步查找:"; //System.out.println("第"+(i+1)+"步查找:"); // String flag=shuru.next(); sum=sum+a[i]; if(sum<0) { start=i; sum=0; } if(sum>max) { end=i; max=sum; s="检查到了 "+" "+" 第"+(number+1)+"个"+(start+1)+"元素到"+(end+1)+"元素"+"子数组最大为:"+max; n="当前最大子数组:"+" "+(start+1)+"号元素"+(end+1)+"号元素"+"大小为:"+max; //System.out.println(s); //System.out.println(n); number++; } else { //System.out.println("此次未找到"); //System.out.println("还是它"+s); } String s1=""; s1=n1+n+s; list.add(s1); } System.out.println("输入0进行下一步,输入数字是回滚第几部"); for(int i=0;i<list.size();i++) { int flag=shuru.nextInt(); System.out.println(list.get(i)); } System.out.println("输入数字是回滚第几部"); int j=shuru.nextInt(); for(int i=0;i<list.size();i++) { if(i>=j) { System.out.println(list.get(i)); } } return max; } }
运行结果如下: