本文主要是介绍Codeforces Round #268 (Div. 1) A,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
A. 24 Game
题意:n个数(1~n),每次取两个数,进行+,-,*运算中的一个,然后放回数列中,问是否能最后剩下一个24,输出每一步运算。
思路:稍微分析一下就知道,n>3时才有可能。其实所有n>3的情况都可以,只需要先乘出一个24,然后不断造1乘上去就可以了。分奇偶两种情况,具体见代码。
#include <iostream>
#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <iomanip>
#include <cstdlib>
#include <string>
#include <memory.h>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <ctype.h> using namespace std; int main(){int n;while(cin>>n){if(n<4){cout<<"NO"<<endl;}else{cout<<"YES"<<endl;if(n&1){printf("5 - 2 = 3\n");printf("3 - 1 = 2\n");printf("2 * 3 = 6\n");printf("6 * 4 = 24\n");for(int i=7;i<=n;i+=2){printf("%d - %d = 1\n",i,i-1);printf("24 * 1 = 24\n");}}else{printf("1 * 2 = 2\n");printf("2 * 3 = 6\n");printf("6 * 4 = 24\n");for(int i=6;i<=n;i+=2){printf("%d - %d = 1\n",i,i-1);printf("24 * 1 = 24\n");}}}}return 0;
}
这篇关于Codeforces Round #268 (Div. 1) A的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!