• Uva 10344 23 out of 5


    Problem I  23 Out of 5

    Input: standard inputOutput: standard output

    Time Limit: 1 secondMemory Limit: 32 MB

    这几天做的都是水题,这题也不例外,其实也不要说是水题,如果排列不是靠next_permination,那么也不会这么清楚地做出来,暴力求解生成23点是比较简单,题目的意思就不要多去纠结,只要按顺序计算就是了

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 using namespace std;
     5 int digit[6];
     6 int ans = 0;
     7 void Traverse(int cur, int sum)
     8 {
     9     if(cur > 5)
    10     {
    11         if(sum == 23) ans = 1;
    12         return;
    13     } 
    14     else
    15     {
    16         Traverse(cur+1, sum*digit[cur]);
    17         Traverse(cur+1, sum+digit[cur]);
    18         Traverse(cur+1, sum-digit[cur]);
    19         return;
    20     }
    21 }
    22 
    23 int main()
    24 {
    25     while(1)
    26     {
    27         int flag, i;
    28         for(flag=i=0; i<5; ++i)
    29         {
    30             scanf("%d", &digit[i]);
    31             if(digit[i] != 0) flag = 1;
    32         }
    33         if(!flag) break;
    34         sort(digit, digit+5);
    35         ans = 0;
    36         do
    37         {
    38             Traverse(1, digit[0]);
    39         }while(next_permutation(digit, digit+5));
    40         if(ans) printf("Possible\n");
    41         else printf("Impossible\n");
    42     }
    43     
    44     return 0;
    45 }
    物役记

    更多内容请关注个人微信公众号 物役记 (微信号:materialchains)

  • 相关阅读:
    hadoop基础
    数据库基础知识
    sqoop基础
    大数据之常用linux常用命令
    zooKeeper基础
    impala基础
    Hbase基础
    Commitlint 提交规范类型
    理解JS闭包
    JS函数作用域及作用域链理解
  • 原文地址:https://www.cnblogs.com/liaoguifa/p/3045912.html
Copyright © 2020-2023  润新知