codeforces 468A 24 Game 构造

来源:互联网 发布:阿里云 开通码 编辑:程序博客网 时间:2024/05/20 11:22

题意:给定一个数n和“+”、“-”、“*”三种运算符号。问用[1,n]中所有的数能否构成24

思路:n<=3无解; n=4时,1*2*3*4=24; n=5时,4*2=8, 5+1-3=3 , 3*8=24; n>=6时,用1、2、3构成0,4、6构成24,其余全部和0乘即

可。详见代码:

// file name: codeforces468A.cpp //// author: kereo //// create time:  2014年09月21日 星期日 21时42分42秒 ////***********************************//#include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<set>#include<map>#include<vector>#include<stack>#include<cmath>#include<string>#include<algorithm>using namespace std;typedef long long ll;const int MAXN=100000+100;const int inf=0x3fffffff;const int mod=1000000000+7;#define L(x) (x<<1)#define R(x) (x<<1|1)int n;int main(){while(~scanf("%d",&n)){if(n<=3){printf("NO\n");continue;}printf("YES\n");if(n == 4){printf("1 * 2 = 2\n");printf("3 * 4 = 12\n");printf("2 * 12 = 24\n");continue;}if(n == 5){printf("5 - 3 = 2\n");printf("2 + 1 = 3\n");printf("2 * 4 = 8\n");printf("3 * 8 = 24\n");continue;}printf("3 - 2 = 1\n");printf("1 - 1 = 0\n");printf("0 * 5 =0\n");for(int i=7;i<=n;i++)printf("0 * %d = 0\n",i);printf("4 * 6 = 24\n");printf("0 + 24 = 24\n");}return 0;}



0 0
原创粉丝点击