zoukankan      html  css  js  c++  java
  • 数组课堂练习

    设计思想:

    数组内有正数有负数,先遍历寻找数组内第一个正数,并将其设置为最大值。开始往后加,一旦和是负数,就舍弃前边的数,从当前位置继续往后加,每一次相加后都会和最大值比较,如果小于最大值就不记录,不然记录为最大值。

    代码:

    import java.util.Random;
    
    public class ArrayAdd {
        public static void main(String args[]){
                int a[]=new int[10];
                for(int i=0;i<10;i++)
                {
                    a[i]=new Random().nextInt()%30;
                    System.out.print(a[i]+" ");
                }
                System.out.println();
                int max=0;
                int Sum=0;
                int Start=0;
                int start=0;
                int end=0;
                for(int i=0;i<10;i++)
                {
                    if(i==0)
                    {
                        Sum=max=a[i];
                        continue;
                    }
                         
                    if(Sum<0)
                    {
                        Sum=0;
                        Start=i;
                    }
                    Sum+=a[i];
                    if(Sum>max)
                    {
                        max=Sum;
                        start=Start;
                        end=i;
                    }
                }
                 
                System.out.println("和最大的子数组为:");
                for(int i=start;i<=end;i++)
                {
                    System.out.print(ary[i]+"+");
                }
                System.out.print("="+max);
        }
    }

    截图:

    总结:

    要想解决问题,先学好数学。

  • 相关阅读:
    Python2-列表
    C#1-变量和表达式
    Python1-变量
    grep输出带有颜色设置
    ftp服务器的安装与使用
    慕课网-哒哒租车系统
    ulimit 命令
    ARP与RARP
    return 和exit
    java运行机制
  • 原文地址:https://www.cnblogs.com/a1264393659/p/5368789.html
Copyright © 2011-2022 走看看