C++——算24(4个数不改变顺序,运算次序确定能否得到24)
来源:互联网 发布:上海海洋大学网络教学 编辑:程序博客网 时间:2024/06/07 18:33
算24(4个数不改变顺序,运算次序确定能否得到24)
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:
输入4个1~13的整数,不改变顺序,且运算次序为先做第一个运算,再做第二个运算,最后做第三个运算,即(((a ? b) ? c) ? d), 能否得到24。
输入:
输入4个1~13的整数。
输出:
不改变4个整数的顺序,且运算次序为先做第一个运算,再做第二个运算,最后做第三个运算的情况下,能否得到24。
如果能则输出“Yes”,否则输出“No”。
输入样例:
1 5 4 1
输出样例:
Yes
#include<iostream>
using namespace std;
void init();int calc(int n);int x,y;int a[4];
int main(){ int i,j,k,l,m; int b[3];
init();
for(l=0;l<3;l++) { x=a[l]; y=a[l+1]; for(m=0;m<3;m++) { b[l]=calc(m); int z=b[l]; b[(l+1)%3]=a[(l+2)%4]; b[(l+2)%3]=a[(l+3)%4]; for(i=0;i<2;i++) { x=b[i]; y=b[i+1]; for(j=0;j<3;j++) { x=calc(j); y=b[(i+2)%3]; for(k=0;k<3;k++) { if(calc(k)==24) { cout<<"Yes"<<endl; return 0; } } x=b[i]; y=b[i+1]; } x=a[l]; y=a[l+1]; } } } cout<<"No"<<endl; return 0;}
int calc(int n){ if(n==0) { return(x+y); } else if(n==1) { return(x-y); } else if(n==2) { return(x*y); }}
void init(){ int i;
for(i=0;i<4;i++) { cin>>a[i]; }}
- C++——算24(4个数不改变顺序,运算次序确定能否得到24)
- C++——算24(不改变4个数顺序,能否得到24)
- 给定4个数 判断经过各种排序,运算后能否到达24这个值
- C之有趣-数组中不改变次序的排名
- 给出4个1-9的自然数,计算这4个数+、-、*、/运算后得到24的算法
- C 运算符的优先次序
- Turbo C运算符的优先次序
- Turbo C运算符的优先次序
- sicily 1050——5个数通过加减乘除运算得到目标数
- 【C#】改变物体顺序
- 改变运算顺序的运算符
- C++常量折叠——常量能否被改变?
- C语言——单词倒置但不改变词序
- C语言——确定某数比特位中1的个数并打印其32位比特数值
- (C)顺序表实现集合运算
- c语言运算顺序
- c语言:顺序表的实现(三)将元素e插入到一个递减有序表中,不改变顺序表的递减有序性。
- 改变对象的显示顺序--类似绘图次序的前置和后置
- 051day(this指针和放苹果)
- Spring集成消息队列RabbitMQ(消息失败处理)
- 理解js中的原型链
- JavaScript数据类型
- 上移下移操作
- C++——算24(4个数不改变顺序,运算次序确定能否得到24)
- Jmeter压力测试入门使用
- [比赛注意事项]
- Hystrix高可用架构介绍
- 设计模式的艺术之道--面向对象设计原则
- 理解计算机
- TOJ 3271 Deque Sort
- 周中记录--2017.1.30
- orm查询1