CCF-CSP题解 201903-2 二十四点】的更多相关文章

题意: 计算数学表达式的值, 数学表达式的定义: 4个[0-9]表示数字的字符 ,3个[+-x/]表示运算的字符 可以用正则为: ([0-9][+-x/]){3}[0-9] 例如: 5+2/1x3 2-1+7x3 3x3/3x3 找到图片了,不啰嗦了... 这道题只有7个字符,数字只有一位不算太难 先算乘除,后算加减,考试的时候就是这样做的,用stack完美解决 但如果加大难度.... 1)  数字允许有多位比如  1314-521*233 2) 再比如如果有括号呢   -1-(1-(-9))…
可枚举. 写栈的主要思想是:一个数栈\(numSta\),一个运算符栈\(opSta\).遇到一个运算符,就把之前优先级\(equal\ or\ greater\ than\)它的运算符处理掉. #include <bits/stdc++.h> using namespace std; int operation(int num1, char op, int num2) { if (op == '+') return num1 + num2; else if (op == '-') retur…
题面: 考场写的30分== #include<bits/stdc++.h> using namespace std; stack<int>st; stack<char>op; int main() { int t; while(scanf("%d",&t)!=EOF) { string s; while(t--) { cin>>s; //cout<<s.length(); ; i<; i++) { //cout&…
You have 4 cards each containing a number from 1 to 9. You need to judge whether they could operated through *, /, +, -, (, )to get the value of 24. Example 1: Input: [4, 1, 8, 7] Output: True Explanation: (8-4) * (7-1) = 24 Example 2: Input: [1, 2,…
问题: 给出四个数,不可以重复使用,可以用+ - * /和括号,怎么得出24? 代码: //return -1 表示当前方法不行 private int workByStep(int op,int num1,int num2) { int temp=-1; if(op==0) { temp= num1+num2; }else if(op==1) { temp=num1-num2; }else if(op==2) { temp=num1*num2; }else if(op==3) { temp=(…
经典的一个题,今天竟然写跪了…… 题意: 给你4个数字,让你判断是否能通过四则运算和括号,凑成24点. 思路: 暴力枚举运算顺序和运算符. 代码: #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <algorithm> #include <string> #includ…
如图所示先处理乘号和除号,再处理加减. #include<bits/stdc++.h> using namespace std; ];int main(){ int n; cin>>n; int i,j,op1,op2; string inp; ]; ]; ; ; ]; ]; ;i<n;i++){ cin>>inp; sum=; nnum=; opnum=; nn[]=inp[]-'; nn[]=inp[]-'; nn[]=inp[]-'; nn[]=inp[]-…
思路: 数据结构中,栈可以解决运算的问题.利用压栈和弹栈操作实现(这里用队列模拟).具体的: 遇到乘除号,弹出栈顶元素,将计算结果压入栈中.遇到加减号,将后面的数一起压入栈中. 注意: substring方法前闭后开,substring(i, i + 2)取的是i和i+1. 在ASCII码里'0'对应的刚好是48的二进制码,所以用字符串减去'0'即为整数. import java.util.Scanner; public class Main { public static void main(…
思路描述:最开始的思路是拿一个栈来存储数据和符号,在动手实践的过程中发现行不通,单个数字的char和int转换可以,但是加起来的数据两位数字就很难处理了. 然后就去看了看别人的思路,给了我一个很好的启发就是把数据和符号分开存储,但是在处理减号时思路再次打乱,突然就想到了双端队列! 整理后的思路如下:(可能思路和我卡在同一个地方的更容易看明白我在说啥,尽量想让博客写的更容易理解些,会努力加油的!) 贴下代码: #include<iostream> #include<cstring>#…
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201503-3 节日 问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日. 现在,给你a,b,c和y1, y2(1850 ≤ y1, y2 ≤ 2050),希望你输出从公元y1年到公元y2年间的每年的a月的第b个星期c的日期. 提示:关于闰年的规则:年份是400的整数倍时是闰年,否则年份是4的倍数并且不是100的倍数…