小Y的难题

小Y的难题

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Font Size:
Aa
Aa
Aa

Description

近期小Y迷上了数学,总是在思考各种数学问题。有一天,他不小心把墨水洒在草稿纸上。他如今能看到的是“2?3?1?4”(?表示看不清的地方)。小Y的记忆力不错,他知道:
1、每一个?仅仅会是“+”、“-”,“=”三个符号之中的一个。
2、总共同拥有且仅有一个“=”。
3、原式一定是一个等式。如“2+3-1=4”
如今他突然想知道,有多少种可能性,满足上面3个要求。

Input

多组输入。
每组第一行有一个数字n。表示小Y从左到右,一共能够看到n个数字。(2<=n<=15)
每组第二行有n个数字。分别表示这n个数字是什么。保证每一个数字都是非负整数,且小于10^7。

Output

对于每组,输出一行,这一行仅仅有一个数字,表示有多少种可能性满足题意。

Sample Input

4
2 3 1 4
4
1 1 1 1

Sample Output

2
6

Hint

数字之间一定有且仅有一个符号,第一个数字前没有符号。

代码例如以下:
     
     
#include<stdio.h>
int a,b,c,d[2],m,l,k,zu[20],jie[2][330000];
void dfs( int n, int sum)
{
     if (n==k)
     {
         jie[l][d[l]++]=sum;
         return ;
     }
     dfs(n+1,sum+zu[n+b]);
     dfs(n+1,sum-zu[n+b]);
}
int main()
{
     int x,y,z;
     while ( scanf ( "%d" ,&z)!=EOF)
     {
         int ans=0;
         for (m=0;m<z;m++)
         scanf ( "%d" ,&zu[m]);
         for (m=1;m<z;m++)
         {
             b=0;
             d[0]=d[1]=0;
             k=m;
             l=0;
             dfs(1,zu[0]);
             k=z-m;
             l=1;
             b=m;
             dfs(1,zu[m]);
             for (x=0;x<d[0];x++)
             {
                 for (y=0;y<d[1];y++)
                 {
                     if (jie[0][x]==jie[1][y])
                     ans++;
                 }
             }
         }
         printf ( "%d\n" ,ans);
     }
     return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118560.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • VMware虚拟机中安装Linux系统详细步骤(方法一)「建议收藏」

    VMware虚拟机中安装Linux系统详细步骤(方法一)「建议收藏」linux系统下载地址:linux镜像文件下载地址:登录Centos官网下载或进入链接:https://pan.baidu.com/s/19j5hrW2U754SPH9p2H6E0Q提取码:krzl百度网盘进行下载安装步骤打开VMware虚拟机点击创建虚拟机点击自定义,再点击下一步硬件兼容性默认,直接单击下一步点击浏览,在目录下找到自己下载的linux系统的镜像文件,选择后…

    2022年9月12日
    0
  • eclipse adt bundle不显示Android SDK菜单

    eclipse adt bundle不显示Android SDK菜单我把adtbundle拷贝到装有jdk1.5的电脑时,Eclipse死活不显示SDK的相关菜单。原因是jdk版本太低,只有1.6以上才会有。。eclipse.ini里限制jdk版本原来是有意的。安装了jdk1.6后,就能定制GUI了。eclipse中的window→Customize Perspective→Command Groups availability→Av

    2022年10月25日
    0
  • ionic react-native和native开发移动app到底那个好

    ionic react-native和native开发移动app到底那个好

    2021年9月13日
    67
  • java数组转集合后添加元素报错[通俗易懂]

    java数组转集合后添加元素报错[通俗易懂]Arrays.asList()方法返回的是一个Arrays的内部类ArrayList,而不是java.util.ArrayList.内部类中没有重写add()方法. 解决办法是重新创建一个集合,把旧的传递进去

    2022年9月19日
    0
  • 标准化和归一化,请勿混为一谈,透彻理解数据变换[通俗易懂]

    标准化和归一化,请勿混为一谈,透彻理解数据变换[通俗易懂]标准化与归一化1、标准化(Standardization)和归一化(Normalization)概念1.1、定义1.2、联系和差异一、联系二、差异1.3、标准化和归一化的多种方式2、标准化、归一化的原因、用途3、什么时候Standardization,什么时候Normalization4、所有情况都应当Standardization或Normalization么5、一些其他的数据变换方式5.1、l…

    2022年6月23日
    33
  • sap 获取计划订单bapi_PP 常用bapi

    sap 获取计划订单bapi_PP 常用bapiBAPI:在SAP中可以允许使用BAPI访问标准功能,这些接口可以由外部应用程序开发的客户和配套软件的合作伙伴以及其他SAP应用程序使用。定义SAP业务对象类型的API方法,这些对象类型范围内的业务框架,用于基于对象的组件之间的通信。业务对象和他们的BAPI使面向对象是公司在中央信息处理。例如,现有的功能和数据可重复使用,无故障的技术可以实现的互操作性和非SAP组件可以实现。应用程序可以使用BAP…

    2022年7月24日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号