zoukankan      html  css  js  c++  java
  • [ 9.24 ]CF每日一题系列—— 468A构造递推

    Description:
      1 - n个数问你能否经过加减乘除这些运算n -1次的操作得到24

    Solutrion:
      一开始想暴力递推,发现n的范围太大直接否决,也否决了我的跑dfs,后来就像肯定有个递推规律,然后从1 - n模拟下,1-3直接no,发现4可以了,那么4 6 8 ……都可以了,就是多乘个1而已,但是模拟5的时候一时石乐志,没模拟出来,哎,就是卡脑子了,所以这个题就荣幸的写了博客

    Code

      

    /*
    写出4 和 5 的构造情况,对于后续的就是多乘个1
    */
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    void print(int x)
    {
        if(x == 4)
        {
            printf("1 * 2 = 2
    3 * 4 = 12
    2 * 12 = 24
    ");
        }
        else
        {
            printf("4 * 2 = 8
    3 * 5 = 15
    1 + 8 = 9
    9 + 15 = 24
    ");
        }
    }
    int main()
    {
        int n;
        while(~scanf("%d",&n))
        {
            if(n <= 3)
                printf("NO
    ");
            else
            {
                printf("YES
    ");
                int tim = (n - 4) / 2;
                if(n % 2 == 0)
                {
                    print(4);
                    for(int i = 5;i <= n;i+=2)
                    {
                        printf("%d - %d = 1
    ",i+1,i);
                    }
                }
                else
                {
                    print(5);
                    for(int i = 6;i <= n;i+=2)
                    {
                        printf("%d - %d = 1
    ",i+1,i);
                    }
                }
                for(int i = 0;i < tim;++i)
                {
                    printf("24 * 1 = 24
    ");
                }
            }
        }
        return 0;
    }
    
  • 相关阅读:
    o gdb
    net -t struct ifreq
    file -x stat()-fstat()-lstat()
    I/O -x fcntl()
    I/O -x dup() dup2()
    14条---注意点
    user -x userid
    err -x perror() strerror()
    苹果电脑挂载NTFS移动硬盘
    ASP.NET Core之EF Core学习笔记
  • 原文地址:https://www.cnblogs.com/DF-yimeng/p/9697204.html
Copyright © 2011-2022 走看看