zoukankan      html  css  js  c++  java
  • 个人数组

    第一:将数组首尾相连,形成循环数组,依然输出最大子数组的和

    package max1;
    import java.util.Scanner;
    import java.io.*;
    import java.math.BigDecimal;
    public class zdh {
    
        public static void main(String[] args) throws Exception{
            FileWriter out = new FileWriter("D:\array.txt");
    int []b=new int[4];
    for(int i=0;i<4;i++)
    {b[i]=(int)(-9+Math.random()*20);}
         for(int i=0;i<4;i++)
         {
     out.write(b[i]+" ");
            }
            out.close();        
            BufferedReader br = null;
            try {
                br = new BufferedReader(new FileReader("D:\array.txt"));
            } catch (FileNotFoundException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            String s="";
            String s1;
            try {
                while((s1=br.readLine())!=null)
                {
                s=s+s1;
                }
            } catch (IOException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        String [] data=s.split(" ");
            int []a=new int [data.length];
            //将String类型数组转成int类型
            for(int j=0;j<data.length;j++)
            {
            a[j]=Integer.parseInt(data[j]);
            }
            /*for(int i=0;i<a.length;i++)
            {
            System.out.print(a[i]+" ");
            }*/
        if(a.length>60000)
            throw new Exception("数量过多");
            // TODO 自动生成的方法存根
                  findmax(a);
        }
        public static void findmax(int a[])
        {        
             Scanner sc= new Scanner(System.in);
             int sum=0;
             int max=0;
             int s=0;
             int e=0;
                int []c=new int[3];
                int []d=new int[7];
                for(int i=0;i<3;i++)
                {
                    c[i]=a[i];
                }
                for(int i=0;i<4;i++)
                {
                    d[i]=a[i];
                }
                for(int i=4;i<7;i++)
                {
                    d[i]=c[i-4];
                }
                 for(int i=0;i<7;i++)
                 {
                     System.out.println(d[i]);
                 }
                
             for(int i=0;i<7;i++)
             {
                 sum=sum+d[i];
             if(sum<0)
             { sum=0;
              s=i+1;
                     }
             if(sum>max)
             {
                 max=sum;
             e=i+1;
             }
             }
             System.out.println(s);
             System.out.println(e);
             if((e-s)>4)
            
             System.out.println(max);
        }
        
    }
  • 相关阅读:
    常用网络操作命令
    C语言中的位域[转]
    状态机——一种强大的思想利器
    9030PCI CAN驱动开发点滴
    驱动开发中应该注意的事项
    java 从网络Url中下载文件
    windows pyspider 爬虫安装
    java list去重
    Java 文件分块及合并
    工程部署到linux
  • 原文地址:https://www.cnblogs.com/Evak/p/10585735.html
Copyright © 2011-2022 走看看