西电复试之——CCF201903-02 二十四点 100分

西电复试之——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;
}

原创文章 35 获赞 17 访问量 1276

猜你喜欢

转载自blog.csdn.net/qq_41436493/article/details/105630794
今日推荐