輸入一堆數字,找出連續的數字乘積中最大者

[心得]

1.product的初始值要設為1,設成0的話就不管怎麼乘都是0 = =a

2.product=1的位置也要放對,每改變一次起點就要重新計算

3.乘積最多可能到10^18,所以product要使用long long int來令

4.題目要求的是每個輸出之後都要空一行

 

#include <stdio.h>

int main()
{
    int N,i,j,Si[19],n=1;
    long long int product,max;
   
    while(scanf("%d",&N)!=EOF)
    {
        max=0;
       
        for(i=0;i<N;i++)
            scanf("%d",&Si[i]);
           
        for(i=0;i<N;i++)
        {
            product=1;
           
            for(j=i;j<N;j++)
            {
                product*=Si[j];
                if(product>max)
                    max=product;
            }
        }
           
        printf("Case #%d: The maximum product is %lld.\n\n",n,max);       
        n++;
    }
   
    return 0;
}

arrow
arrow
    全站熱搜

    RingsACM 發表在 痞客邦 留言(0) 人氣()