B站头图景深对焦效果

请在图片上左右移动鼠标查看效果

关于 UVA - 11059 存在的疑惑

Maximum Product - UVA 11059 - Virtual Judge (vjudge.net)

--------------------------------------------------------------------------------------------------------

废话不多说,直接上我的错误代码!

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 21;
int main(){
    int i,n,t=0;
    long long int sum;
    long long int data[maxn];
    while(cin>>n&&n!=0){
        sum=1;
        t++;
        for(i=1;i<=n;i++){
            cin>>data[i];
        }
        for(i=1;i<=n;i++){
            if(data[i]>0){
                sum=sum*data[i];
                continue;
            }
        }
      printf("Case #%d: The maximum product is %lld.\n\n",t,sum);
    }
    return 0;
}

 11059 | uDebug

附上 D-BUG

---------------------------------------------------------------------------------------------------------------

发现上面的错误代码在全为非正数时输出结果为1,

与0相悖!

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int maxn=21;
int main(){
    int i,j,k,n;
    int data[maxn];
    long long int res,m;
    while(cin>>n){
        int t=0;
        t++;
        for(i=1;i<=n;i++){
            cin>>data[i];
        } 
        res=0;
        for(i=1;i<n;i++){
            for(j=i;j<=n;j++){
                m=1;
                for(k=i;k<=j;k++){
                    m*=data[k];
                }
                if(res<m)
                    res=m;
            }
        }
        printf("Case #%d: The maximum product is %lld.\n\n",t,res);
    }
    return 0;
}

 当输入 2

-9 9  时

结果输出的是0

AC:

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int maxn=21;
int main(){
    int i,j,k,n;
    int data[maxn];
    int t=0;
    long long int res,m;
    while(cin>>n){
        t++;
        for(i=1;i<=n;i++){
            cin>>data[i];
        } 
        res=0;
        for(i=1;i<=n;i++){
            for(j=i;j<=n;j++){
                m=1;
                for(k=i;k<=j;k++){
                    m*=data[k];
                }
                if(res<m)
                    res=m;
            }
        }
        printf("Case #%d: The maximum product is %lld.\n",t,res);
        if(t)
            cout<<endl;
    }
    return 0;
}

 

posted @ 2021-09-09 11:40  acmWang  阅读(29)  评论(0)    收藏  举报
返回顶端

2021-09-22 (星期三)
09:08:39 +08:00