zoukankan      html  css  js  c++  java
  • 软件工程个人作业04

    设计思路:

    计算前i-1个数的和,如果他们的和加上第i个的和大于第i个数,那么保留和,如果是小于的话就让最大值等于第i个数的值,这样依次类推,可以得到最大的和。

    出现的问题:

    如果第i个数为负数的话,这样有可能导致最后加上一个负数,使最大和值变小

    可能的解决方案:

    定义一个变量记住加上负数之前的值。

    源代码:

    import java.util.Scanner;
    
    public class Maxsum {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int max,a;
            System.out.println("请输入数字的长度:");
            Scanner sc1 = new Scanner(System.in);
            int size = sc1.nextInt();
            int num[]=new int [size];
            System.out.println("请输入数字:");
            for(int i=0;i<size;i++)
            {
                num[i]=sc1.nextInt();
            }
            max=num[0];
            a=num[0];
            for(int i=1;i<size;i++)
            {
                if(max+num[i]>=num[i])
                {
                    if(num[i]<0&&a<max+num[i])
                        a=max;
                    max=max+num[i];                
                }
                else
                    max=num[i];
            }
            if(a>max)
                max=a;
            System.out.print(max);
    
        }
    
    }

    结果截图

    总结:

    最开始看到题目的时候想的是两个for循环嵌套着做,但是题目要求复杂度为n,在老师的提示下想到这个方法,写程序之前要多思考这样才能设计出简便又节省空间的程序,对于之前学习的数据结构应该好好融会贯通。

  • 相关阅读:
    C#.NET Winform 快速开发平台
    .Net C/S系统开发框架(楚楚原创)
    C# Winform 开发框架
    php导出excel表格超链接
    tp3使用PHPExcel 导出excel
    tp文件上传、表格转数组
    BUG修复记录
    tp3切库问题记录
    个人总结
    初识爬虫(番外篇-python)
  • 原文地址:https://www.cnblogs.com/1443188449qq/p/5368031.html
Copyright © 2011-2022 走看看