zoukankan      html  css  js  c++  java
  • cf 24 Game (观察+.. 想一想)

    题意:

    给一个数N,从1到N。

    每次取两个数,三种操作:加、减、乘,运算完得一个数,把那俩数删了,把这个数加进去。

    重复操作N-1次。

    问是否可能得到24。若可以,输出每一步操作。


    思路:

    小于4,不行。

    大于等于4:

    偶数:1,2,3,4可以搞出24,剩下偶数个数相邻相减得1,每次与24相乘即可。

    奇数:1,2,3,4,5可以搞出24,剩下偶数个数.....同理。


    代码:

    #include <cstdio>
    #include <iostream>
    #include <string.h>
    #include <cstdlib>
    #include <algorithm>
    #include <queue>
    #include <vector>
    #include <cmath>
    #include <map>
    #include <stack>
    using namespace std;
    int const uu[4] = {1,-1,0,0};
    int const vv[4] = {0,0,1,-1};
    typedef long long ll;
    int const maxn = 50005;
    int const inf = 0x3f3f3f3f;
    ll const INF = 0x7fffffffffffffffll;
    double eps = 1e-10;
    double pi = acos(-1.0);
    #define rep(i,s,n) for(int i=(s);i<=(n);++i)
    #define rep2(i,s,n) for(int i=(s);i>=(n);--i)
    #define mem(v,n) memset(v,(n),sizeof(v))
    #define lson l, m, rt<<1
    #define rson m+1, r, rt<<1|1
    
    int n;
    
    void output1(int n){
        printf("1 * 2 = 2
    ");
        printf("2 * 3 = 6
    ");
        printf("6 * 4 = 24
    ");
        for(int i=5;i<=n-1;i+=2){
            printf("%d - %d = %d
    ",i+1,i,1);
        }
        rep(i,1,(n-4)/2){
            printf("24 * 1 = 24
    ");
        }
    }
    void output2(int n){
        printf("4 * 5 = 20
    ");
        printf("20 + 2 = 22
    ");
        printf("22 + 3 = 25
    ");
        printf("25 - 1 = 24
    ");
        for(int i=6;i<=n-1;i+=2){
            printf("%d - %d = %d
    ",i+1,i,1);
        }
        rep(i,1,(n-5)/2){
            printf("24 * 1 = 24
    ");
        }
    }
    int main(){
        scanf("%d",&n);
        if(n<4){
            printf("NO
    ");
            return 0;
        }
        printf("YES
    ");
        if(n%2==0){
            output1(n);
        }else{
            output2(n);
        }
    }

      



  • 相关阅读:
    URL编码和Bsae64编码
    在控制台保存下载数据文件方法
    前端下载文件的几种方式
    npm i error:0909006C:PEM routines:get_name:no start line 遇到问题解决
    MapTalks.js 使用小结(三): 各类地图加载
    在线瓦片地图服务资源 总结
    npm webpack 遇到的问题解决方案总结
    MapTalks.js 使用小结(二)
    可拖动的进度条 in vue
    滚动条vue-seamless-scroll的使用
  • 原文地址:https://www.cnblogs.com/fish7/p/3985281.html
Copyright © 2011-2022 走看看