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);
        }
        
    }
    复制代码
  • 相关阅读:
    mysql笔记
    ssh学习笔记
    oracle数据向历史表数据迁移————procedure
    关于避免模糊查询索引时效问题
    css圣杯布局和双飞翼布局篇
    什么是hasLayout
    高度自适应的水平垂直居中布局
    MAC的GIF动图录屏软件LICECAP
    sublime text 快捷键shortcuts
    为表格合并边框的样式
  • 原文地址:https://www.cnblogs.com/baixiaoli/p/10645064.html
Copyright © 2011-2022 走看看