zoukankan      html  css  js  c++  java
  • 整数数组中最大子数组求和02

    设计思路:

    在“整数数组中最大子数组求和01”的基础上完成本次实验。

    本次实验的关键在于如何判断结束。

    经设计,程序结束条件有两种:1.截取部分有重复;2.循环完整两次。

    满足其中任一条件则循环结束。

    代码:

    //20160327
    #include<iostream>
    #include<algorithm>
    using namespace std;
    
    int main()
    {
        int arr[100];
        int NUM = 0;
        int MAXSUM = 0;
        int MINNUMend = 0;
        int MINSUM = 0;
        int SUM = 0;
        int jump = 0;
        int start = -1;
        for (; NUM < 100; NUM++)
        {
            cin >> arr[NUM];
            if (getchar() == '
    ')
            {
                break;
            }
        }
        if (NUM == 100)
        {
            NUM = 99;
        }
        for (int i = 0;; i < NUM ? i++ : i = 0)
        {
            if (i == 0)
            {
                jump += 1;
                if (jump == 3)
                {
                    break;
                }
            }
            if (start == i)
            {
                break;
            }
            SUM = min(SUM + arr[i], arr[i]);
            if (MINSUM > SUM)
            {
                MINNUMend = i;
            }
            MINSUM = min(SUM, MINSUM);
            if (start == -1)
            {
                start = 0;
            }
            if (SUM >= 0)
            {
                start = i;
            }
        }
        SUM = 0;
        jump = 0;
        start = -1;
        for (int i = MINNUMend;; i < NUM ? i++ : i = 0)
        {
            if (i == MINNUMend)
            {
                jump += 1;
                if (jump == 3)
                {
                    break;
                }
            }
            if (start == i)
            {
                break;
            }
            SUM = max(SUM + arr[i], arr[i]);
            MAXSUM = max(SUM, MAXSUM);
            if (start == -1)
            {
                start = MINNUMend;
            }
            if (SUM <= 0)
            {
                start = i;
            }
        }
        cout << "最大和:" << MAXSUM << endl;
        return 0;
    }

    测试截图:

     

    此次结对编程队友杨安琪http://www.cnblogs.com/ning-JML/p/5326332.html

  • 相关阅读:
    MySQL "show users"
    MySQL
    A MySQL 'create table' syntax example
    MySQL backup
    MySQL show status
    Tomcat, pathinfo, and servlets
    Servlet forward example
    Servlet redirect example
    Java servlet example
    How to forward from one JSP to another JSP
  • 原文地址:https://www.cnblogs.com/linanil/p/5323599.html
Copyright © 2011-2022 走看看