这道题不能够想当然吧!
此处贴上已通过的代码
#include <bits/stdc++.h> using namespace std; int main() { int a,b,c,x,y,z; cin>>a>>b>>c>>x>>y>>z; long long ans=0; ans+=y<=a?y:a; ans+=z<=b?z:b; ans+=x<=c?x:c; cout<<ans; return 0; }我的质疑:
直接上例子: 若牛牛出石头、剪刀和布的次数依次为3,2,1;牛可乐出石头、剪刀和布的次数依次为1,2,3。按照已通过的代码的思路走一遍的话,得出的答案应该是5,可是正确答案应该是4。如题所示,a,b,c,x,y,z依次表示牛牛出石头、剪刀和布的次数和牛可乐出石头、剪刀和布的次数。
a(3) > y(2); ans = 2(y);
b(2) < z(3); ans += 2(b) --> ans = 4;
c(1) = x(1); ans += 1(c或x) --> ans = 5;
可是此时牛牛还剩1次石头(a)没有出,牛可乐还有1次布(z)没有出,所以最后一次牛牛必输,ans -= 1;
综上所述:答案是4,并非已通过程序跑出来的5!
全部评论
(6) 回帖