緣由ccf201903-2二十四點我用暴力破解做的,但是兩個程序一個拿到了滿分,一個拿到了50分,看了很長時間也沒看出問題在哪里,希望有英雄慧眼幫我看一下-編程語言-CSDN問答
void INT四則優先算式()
{//緣由https://ask.csdn.net/questions/7786290?spm=1005.2025.3001.5141int a = 0, b = 0, c = 0, d = 0, zc = 0;char f1, f2, f3;std::cin >> a >> f1 >> b >> f2 >> c >> f3 >> d;if (f1 != '+'&&f1 != '-'){ zc = (f1 == '/' ? a / b : a*b);if (f3 != '+'&&f3 != '-'&&(f2=='+'||f2=='-'))(f3 == '/' ? f2 == '+' ? zc += c / d : zc -= c / d : f2 == '+' ? zc += c*d : zc -= c*d);else{if (f2 != '+'&&f2 != '-')(f2 == '/' ? zc /= c : zc *= c);if (f3 != '+'&&f3 != '-')(f3 == '/' ? zc /= d : zc *= d);if (f2 == '+')zc += c; else if (f2 == '-')zc -= c;if (f3 == '+')zc += d; else if (f3 == '-') zc -= d;}}else if (f2 != '+'&&f2 != '-'){zc = (f2 == '/' ? b / c : c*b);if (f3 != '+'&&f3 != '-')(f3 == '/' ? zc /= d : zc *= d);if (f1 == '+')zc += a; else if (f1 == '-')zc -= a;if (f3 == '+')zc += d; else if (f3 == '-') zc -= d;}else if (f3 != '+'&&f3 != '-'){zc = (f3 == '/' ? c / d : c*d);if (f1 == '+')zc += a; else if (f1 == '-') zc -= a;if (f2 == '+')zc += b; else if (f2 == '-') zc -= b;}else{zc = a;if (f1 == '+')zc += b; else zc -= b;if (f2 == '+')zc += c; else zc -= c;if (f3 == '+')zc += d; else zc -= d;}std::cout << zc << std::endl;
}
?
10
9+3+4*3
5+4*5*5
7-9-9+8
5*6/5*4
3+5+7+9
1*1+9-9
1*9-5/9
8/5+6*9
6*7-3*6
6*4+4/5