题目:

pid=5308" target="_blank">http://acm.hdu.edu.cn/showproblem.php?

pid=5308

题意:给定N个N,求出将这N个N构造成24的方法。

分析:要是想到用尽量少的N构造出24点((N+N)/N * (N+N)/N * (N+N)/N
* (N*N+N)/N)。然后把多的N构造成0就好办了((N-N)*N*.....)。

代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std; void _15(int n)
{
printf("1 + 2\n");//n+1
printf("4 + 5\n");//n+2
printf("7 + 8\n");//n+3
printf("10 + 11\n");//n+4
printf("%d + 12\n",n+4);//n+5
printf("%d / 3\n",n+1); // n+6 2
printf("%d / 6\n",n+2);//n+7 2
printf("%d / 9\n",n+3);//n+8 2
printf("%d / 13\n",n+5);//n+9 3
printf("14 - 15\n");//n+10 0
int c=n+10;
for(int i=16;i<=n;i++)
{
printf("%d * %d\n",c,i);
c++;
}
printf("%d * %d\n",n+6,n+7); //c+1
printf("%d * %d\n",n+8,c+1); //c+1
printf("%d * %d\n",c+2,n+9);
printf("%d + %d\n",c+3,c);
}
void _14()
{
int s1[100]={1,15,16,17,18,7,9,11,20,21,22,25,26};
int s2[100]={2,3,4,5,6,8,10,12,13,14,19,23,24};
char op[100]="-****+++//+--";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _13()
{
int s1[100]={1,4,7,10,17,14,15,16,18,19,21,23};
int s2[100]={2,5,8,11,12,3,6,9,13,20,22,24};
char op[100]="+++++////***";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
} void _12()
{
int s1[100]={1,3,5,7,9,11,13,15,17,19,21};
int s2[100]={2,4,6,8,10,12,14,16,18,20,22};
char op[100]="-----++++++";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _11()
{
int s1[100]={1,12,13,14,15,7,17,9,18,19};
int s2[100]={2,3,4,5,6,8,16,10,11,20};
char op[100]="-****+++/+";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
} void _10()
{
int s1[100]={1,11,4,6,8,13,14,15,17};
int s2[100]={2,3,5,7,9,10,12,16,18};
char op[100]="-++++//++";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _9()
{
int s1[100]={1,3,4,11,6,8,15,13};
int s2[100]={2,10,5,12,7,14,9,16};
char op[100]="++-+++/-";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _8()
{
int s1[100]={1,9,10,11,12,13,14};
int s2[100]={2,3,4,5,6,7,8};
char op[100]="-***+++";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _7()
{
int s1[100]={1,3,4,6,11,12};
int s2[100]={2,8,5,10,7,9};
char op[100]="++++/+";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _6()
{
int s1[100]={1,3,7,5,9};
int s2[100]={2,4,8,6,10};
char op[100]="+++-+";
for(int i=0;op[i];i++)
printf("%d %c %d\n",s1[i],op[i],s2[i]);
}
void _5()
{
printf("1 * 2\n");
printf("6 * 3\n");
printf("7 - 4\n");
printf("8 / 5\n");
}
void _4()
{
printf("1 * 2\n");
printf("5 + 3\n");
printf("6 + 4\n");
} int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(n>=15)
_15(n);
else if(n==14)
_14();
else if(n==13)
_13();
else if(n==12)
_12();
else if(n==11)
_11();
else if(n==10)
_10();
else if(n==9)
_9();
else if(n==8)
_8();
else if(n==7)
_7();
else if(n==6)
_6();
else if(n==5)
_5();
else if(n==4)
_4();
else
printf("-1\n");
}
return 0;
}

hdu5308 I Wanna Become A 24-Point Master(构造)的更多相关文章

  1. Kubeadm搭建高可用(k8s)Kubernetes v1.24.0集群

    文章转载自:https://i4t.com/5451.html 背景 Kubernetes 1.24新特性 从kubelet中移除dockershim,自1.20版本被弃用之后,dockershim组 ...

  2. Codeforces Round #268 (Div. 1) A. 24 Game 构造

    A. 24 Game Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/468/problem/A D ...

  3. Puppet自动化部署-前期环境准备(2)

    在安装Puppet环境之前需要配置好机器的基本配置,如规范网络地址IP.hostname,certname认证名称,ntp时间同步等配置完毕,完善的搭建自动化环境. 1.环境介绍 此处实现部署的环境是 ...

  4. MySQL MMM高可用方案

    200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要介绍搭建MMM方案以及MMM架构的原理.这里不介绍主从.主主的搭建方 ...

  5. MySQL 第一篇

    一.MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数 ...

  6. NIS域配置详解

    一.前期准备1.1 NIS 简介NIS,英文的全称是network information service,也叫yellow pages.在Linux中,NIS是一个基于RPC的client/serv ...

  7. salt-master 的配置文件详解

    绑定的地址: interface: 0.0.0.0 master和minion通信端口: publish_port: 4505 可以使用的文件描述符:(每个minion连接master至少需要一个文件 ...

  8. dns 服务器配置

    1.安装 named 2.配置如下文件: /etc/named.conf // 2 // named.conf 3 // 4 // Provided by Red Hat bind package t ...

  9. C#_MySql 主从复制

    一.业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案 ...

随机推荐

  1. [转载]CentOS 7虚拟机下设置固定IP详解

    在 复制 他人作品之前,是因为我再此“跌倒”过一次,虽然原主说是永久地址,但是地址失效 不可避免.所以就原封不动的copy了过来,我自己也是按照他的一步一步配置的,我成功了,相信你们也会成功. 如果不 ...

  2. Perl模块利用CPAN在线安装自动化

    需要解决2个问题: 1.  如何与CPAN交互:利用perl –MCPAN –e ‘install 模块’ 2.  如何安装指定的版本:作者/模块-版本.tar.gz How to install a ...

  3. Android——4.2.2 文件系统文件夹分析

    近期公司要整android内部培训,分配给我写个培训文档.这里记录例如以下: 撰写不易,转载请注明出处:http://blog.csdn.net/jscese/article/details/4089 ...

  4. 特定位取反(js实现)

    去华为面试的时候.没有做好准备工作.面试的流程没有问清也没有查,结果一过去就让上机做题,着实有点措手不及.笔者是擅长前端的Java Webproject师啊,主要的底层编程知识早已生疏了.机试题碰到了 ...

  5. try/catch的用法

    1.try/catch用法基础介绍 try { //程序中抛出异常 throw value; } catch(valuetype v) { //例外处理程序段 } 语法小结:throw抛出值,catc ...

  6. JS取出两个数组的不同或相同元素

    JS合并两个数组的方法 我们在项目过程中,有时候会遇到需要将两个数组合并成为一个的情况.比如: var a = [1,2,3]; var b = [4,5,6]; 有两个数组a.b,需求是将两个数组合 ...

  7. 休假结束,Linus重回内核开发岗位

    在休假反省一个多月之后,Linus Torvalds 又回来了.10 月 22 日爱丁堡举行的欧洲开源峰会上,Linus Torvalds 将与内核维护者们碰头,这是他重新接管Linux内核开发的第一 ...

  8. CentOS7 PXE安装批量安装操作系统

    1.安装相关软件 yum -y install tftp-server httpd dhcp syslinux 2.配置DHCP cp /usr/share/doc/dhcp-4.2.5/dhcpd. ...

  9. Springboot源码——应用程序上下文分析

    前两篇(Spring MVC源码——Root WebApplicationContext 和 Spring MVC源码——Servlet WebApplicationContext)讲述了spring ...

  10. 几种类型的db,以及最新的db排名,看一下

    5月数据库排名: http://geek.csdn.net/news/detail/196118 另外这篇文章里面提到了一些内嵌式数据库: http://blog.csdn.net/leagoal/a ...