zoukankan      html  css  js  c++  java
  • 软件工程子数组求和2

    1.设计思想:首先想到首尾相连和不相连的区别在哪?区别在最后一个数还可以和前面的数组成一个新的数组;然后就是怎样考虑

    用数组储存首尾相连的数组,是否需要加入其他限制条件等?

    2.出现的问题:首尾相连数组无法同其他数组一样储存到一个数组中。

    4.源代码:

    package 子数组求和2;

    import java.util.Scanner;

    public class test {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner scan=new Scanner(System.in);
    System.out.print("请输入数组中数字的个数:");
    int n=scan.nextInt();
    int[] a=new int [n];
    System.out.print("请输入数组:");
    for(int i=0;i<n;i++)
    {
    a[i]=scan.nextInt();
    }
    int a1=findMaxSum(a,n);
    int b,temp,i,sum=0;
    for(b=1;b<n;b++)
    {
    temp=a[0];
    for(i=1;i<=n-1;i++)
    {
    a[i-1]=a[i];
    }
    a[n-1]=temp;
    if(findMaxSum(a,n)>=sum)
    {
    sum=findMaxSum(a,n);
    }
    }
    int a2=sum;
    if(a1>=a2)
    {
    System.out.println("最大子数组和:" + a1);
    }
    else
    {
    System.out.println("最大子数组和:" + a2);
    }


    }
    public static int findMaxSum(int a[],int n)
    {
    int sum=0;

    int b=0;

    for(int i=0; i<n; i++)
    {
    if(b<0)
    b=a[i];
    else
    b+=a[i];
    if(sum<b)
    sum=b;
    }
    return sum;
    }
    }

  • 相关阅读:
    第 33课 C++中的字符串(下)
    第 33课 C++中的字符串(上)
    第32课 初探C++标准库
    第31课 完善的复数类
    第30课 操作符重载
    第29课 类中的函数重载
    C++和C的相互调用
    函数重载遇上函数指针
    函数重载分析
    第2课 算法的效率问题
  • 原文地址:https://www.cnblogs.com/ming123/p/6669536.html
Copyright © 2011-2022 走看看