JG-OJ记录101:9:奇数的乘积

it2025-11-06  11

描述

输入三个整数,输入其中所有奇数的乘积,如果其中都没有奇数,则输出0。

输入

第1行是一个正整数n,表示测试案例的数量。

从第2行到第n+1行,每行有3个整数。

输出

针对每组测试案例,输出3个整数中所有奇数的乘积,如果其中都没有奇数,则输出0。每组案例输出完后都要换行。

样例输入 复制样例

2

1 2 3

4 5 6

样例输出

3

5

HINT 

解:

#include<iostream> using namespace std; int main() { int n,sum=0; cin>>n; for(int i=1;i<=n;i++) { bool h=0; int a,b,c; cin>>a>>b>>c; int x=1,y=1,z=1; if(a%2!=0) { //cout<<"a"<<endl; x=a; h=1; } if(b%2!=0) { //cout<<"b"<<endl; y=b; h=1; } if(c%2!=0) { //cout<<"c"<<endl; z=c; h=1; } if(!h) { cout<<"0"<<endl; } else { sum=x*y*z; cout<<sum<<endl; } } return 0; }

之前那个虽然能ac其实是错的,问题在于

#include<iostream> using namespace std; int main() { int n,sum=0; cin>>n; for(int i=1;i<=n;i++) { int a,b,c; cin>>a>>b>>c; int x=-1,y=-1,z=-1; if(a%2!=0) x=a; if(b%2!=0) y=b; if(c%2!=0) z=c; if((x==-1)&&(y==-1)&&(z==-1)) { cout<<"0"<<endl; } else { sum=x*y*z; if(sum<0) cout<<-1*sum<<endl; else cout<<sum<<endl; } } return 0; }

如果x,y,z都设-1的情况,我用了结果取绝对值,测试点应该没有负数答案所以AC

最新回复(0)