zoukankan      html  css  js  c++  java
  • CCF CSP 201903-2 二十四点

    试题编号: 201903-2
    试题名称: 二十四点
    时间限制: 1.0s
    内存限制: 512.0MB

    在这里插入图片描述
    在这里插入图片描述

    思路:

    1.将四个数字和三个运算符分别用vector存储;
    2.每次遍历运算符vector,寻找’x’或者’/’,然后进行运算,如果没有找到,则用第一个运算符进行运算;
    3.每次运算后将参加运算的两个数字和运算符删去,在数字vector里对应位置插入运算结果;
    4.一共算三次,结束后根据运算结果是否为24分别进行输出;

    代码:

    #include<iostream>
    #include<vector>
    using namespace std;
    int operate(int a,char c,int b){
    	if(c=='+') return a+b;
    	if(c=='-') return a-b;
    	if(c=='x') return a*b;
    	if(c=='/') return a/b;
    }
    int main(){
    	int n;
    	scanf("%d",&n);
    	for(int i=0;i<n;i++){
    		vector<int> num(4);
    		int pos,rs=0;
    		vector<char> op(3);
    		for(int j=0;j<3;j++){
    			scanf("%d",&num[j]);
    			scanf("%c",&op[j]);
    		}
    		scanf("%d",&num[3]);
    		for(int j=0;j<3;j++){
    			for(pos=0;pos<op.size()&&op[pos]!='x'&&op[pos]!='/';pos++);
    			if(pos==op.size()) pos=0;
    			rs=operate(num[pos],op[pos],num[pos+1]);
    			num[pos]=rs; 
    			num.erase(num.begin()+pos+1);
    			op.erase(op.begin()+pos);
    		}
    		printf(rs==24?"Yes
    ":"No
    ");
    	}
    	return 0;
    }
    
  • 相关阅读:
    textarea聚焦的多种写法
    vue.js入门
    全选,反选
    jquery列表,点击反应
    SqlServer中offset..fetch 的使用问题
    复习Spring第四课---Spring对国际化的支持
    SqlServer的order by问题
    设计模式之---代理模式
    解决SpringMVC重复提交的问题
    Java知识复习(三)
  • 原文地址:https://www.cnblogs.com/yuhan-blog/p/12308992.html
Copyright © 2011-2022 走看看