西电复试之——CCF201903-02 二十四点 100分
字符数组解法
#include<stdio.h>
#include<iostream>
using namespace std;
char c[7];
int a[4];
char b[3];
int flag[3] = { 0 };
bool juge(char c[]) {
for (int i = 0; i < 4; i++) {
a[i] = c[2 * i] - '0';
}
for (int i = 0; i < 3; i++) {
b[i] = c[2 * i + 1];
}
//计算乘除法
int k = 3;
for (int i = 0; i < k; i++)
if (b[i] == 'x' || b[i] == '/') {
if (b[i] == 'x') {
a[i] = a[i] * a[i + 1];
}
else
{
a[i] = a[i] / a[i + 1];
}
for (int j = i + 1; j < k; j++) {
b[j - 1] = b[j];
a[j] = a[j + 1];
}
k--; i--;
}
//计算加减法
int ans = a[0];
for (int i = 0; i < k; i++) {
if (b[i] == '+') {
ans = a[i] + a[i + 1];
a[i + 1] = ans;
}
else
{
ans = a[i] - a[i + 1];
a[i + 1] = ans;
}
}
return ans == 24;
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < 7; j++) {
cin >> c[j];
}
if (juge(c)) {
cout << "Yes" << endl;
}
else
{
cout << "No" << endl;
}
}
return 0;
}
学习
cout << "//" << " " << '/' << " " << '//';
输出分别是
/
/
本地根目录
字符串string
#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;
string s;
int a[4];
char b[3];
int flag[3] = { 0 };
bool juge(string s) {
for (int i = 0; i < 4; i++) {
a[i] = s[2 * i] - '0';
}
for (int i = 0; i < 3; i++) {
b[i] = s[2 * i + 1];
}
//计算乘除法
int k = 3;
for (int i = 0; i < k; i++)
if (b[i] == 'x' || b[i] == '/') {
if (b[i] == 'x') {
a[i] = a[i] * a[i + 1];
}
else
{
a[i] = a[i] / a[i + 1];
}
for (int j = i + 1; j < k; j++) {
b[j - 1] = b[j];
a[j] = a[j + 1];
}
k--; i--;
}
//计算加减法
int ans = a[0];
for (int i = 0; i < k; i++) {
if (b[i] == '+') {
ans = a[i] + a[i + 1];
a[i + 1] = ans;
}
else
{
ans = a[i] - a[i + 1];
a[i + 1] = ans;
}
}
return ans == 24;
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> s;
if (juge(s)) {
cout << "Yes" << endl;
}
else
{
cout << "No" << endl;
}
}
cout << "//" << " " << '/' << " " << '//';
return 0;
}