iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 2
1
自我挑戰組

一日一CPE系列 第 2

[Day2]10684: The jackpot

  • 分享至 

  • xImage
  •  

考題日期:2012/05/29
題號:10684
星等:2
語言:C++


題目:
https://ithelp.ithome.com.tw/upload/images/20190918/201209375YMIifODgG.png


題意:
一名賭徒想從連續的賭局中獲得最大的收益,在N局賭局中,求出連續的賭局最大可能贏的錢是多少。
如果輸入的資料不可能贏錢,則輸出 "Losing streak."


程式:

#include <iostream>

using namespace std;

int main()
{
    int test;
    while( cin >> test )
    {
        if( test == 0 )
            break;
        int arr[test];
        int Max = -1, sum = 0;      
        for(int i = 0 ; i < test ; i++)
        {
            cin>>arr[i];    
            if( arr[i] > Max )      //若輸入的金額比最大可能獲得金額高,則最大可能獲得金額為輸入金額
                Max = arr[i];
            sum += arr[i];          //將輸入金額加入累計金額
            if(sum < 0 )            //若累計金額為負數,代表輸錢,則歸零
                sum = 0;
            else if (sum > Max)     //若累計金額超越最大可能獲得金額,則最大金額設為累計金額
                Max = sum;
        }
        if(Max>0)
            cout<<"The maximum winning streak is "<<Max<<"."<<endl;
        else
            cout<<"Losing streak."<<endl;
    }
    return 0;
}


測資:
https://ithelp.ithome.com.tw/upload/images/20190918/20120937gG0z8Le0YR.png


上一篇
[Day1]10107: What is the Median?
下一篇
[Day3]1210: Sum of Consecutive Prime Numbers
系列文
一日一CPE30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言