2008年NOIP全国联赛提高组 枚举算法——火柴棒等式(c++)

news/2024/5/19 0:29:34 标签: c++, 枚举, ACM, 算法

- 枚举算法——火柴棒等式

题目描述

给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示:
在这里插入图片描述
注意:

  1. 加号与等号各自需要两根火柴棍
  2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0)
  3. n根火柴棍必须全部用上

输入

每组输入数据共一行,是一个整数n(n<=24)。

输出

每组输出共一行,表示能拼成的不同等式的数目。

样例输入

14

样例输出

2

因为火柴最大只给24根,减去+、=两个符号最多只有20根火柴棍,所以能组成的式子不超过范围较小,直接选择穷举一千,通过枚举每个成立的情况记录输出。

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<string>
using namespace std;
int num[10]={6,2,5,5,4,5,6,3,7,6};
int countNum(int n){		//计算火柴棍的数量
	int s=0;
	if (n ==0){
		s = 6;
	}
	while(n){
		s+=num[n%10];
		n /= 10;
	}
	return s;		//返回根数
}
main()
{
	int inputNum,numI,numJ,numSum,ans=0;
	cin>>inputNum;
	inputNum -= 4;		//减去+、=两个符号需要的火柴棍数量
	if(inputNum <= 4){
		cout<<0<<endl;
	}else{
		for(int i =0;i<1000;i++){
			for(int j =0;j<1000;j++){
				int Sum = i + j;		//生成一个等式
				numI = numJ = numSum= 0;  //代表所需要的火柴棍的数量
				numI = countNum(i);
				numJ = countNum(j);
				numSum = countNum(Sum);
				if((numI + numJ + numSum)== inputNum){	//火柴数总成立即ans++;
					ans++;
				}else{
					continue;
				}
			}
		}
		cout<<ans<<endl;
	}
}
 

http://www.niftyadmin.cn/n/1483777.html

相关文章

开源SLAM

GitHub 上优秀的开源SLAM repo (更新中)&#xff1a;https://www.jianshu.com/p/464ca0d0c254 当前的开源SLAM方案&#xff1a;https://www.cnblogs.com/Jessica-jie/p/7719359.html 转载于:https://www.cnblogs.com/2008nmj/p/10105859.html

怎样退出git log命令

在Git CMD中输入git log后&#xff0c;发现这个命令根本不能退出。 ctrlc 不行 Esc键 不行 exit 不行&#xff08;你按下一个键就会在显示一行日志&#xff09; 一路回车&#xff0c;最后下方有个END,看起来是最开始的提交了&#xff0c;但依然不能退出。 输入q就可以退…

阻止某些文字被选中$.fn.disableSelection

2019独角兽企业重金招聘Python工程师标准>>> $.fn.disableSelection function() { return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) ".ui-disableSelection", function( event ) { event.preventDefa…

第十五讲、组合模式

1.定义 Composite模式也叫组合模式&#xff0c;是构造型的设计模式之一。通过递归手段来构造树形的对象结构&#xff0c;并通过一个对象来访问整个对象树。 2.组合模式的结构 3.组合模式的角色和职责 Component&#xff08;树形结构的节点抽象&#xff09; 为所有的对象定义统一…

NFS服务器搭建与配置

NFS服务简介 什么是NFS&#xff1f; NFS就是Network File System的缩写&#xff0c;它最大的功能就是可以通过网络&#xff0c;让不同的机器、不同的操作系统可以共享彼此的文件。 ​ NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中&#xff0c;而…

poj 1118 Lining Up(水题)

再思考一下好的方法&#xff0c;水过&#xff0c;数据太弱&#xff01; 本来不想传的&#xff01; #include <iostream> using namespace std; #define MAX 702 /*284K 422MS*/ typedef struct _point {int x;int y; }point;point p[MAX];bool judge(point a,point b,po…

性能测试专业术语

响应时间 客户感受到的响应时间客户端响应时间网络响应时间服务器响应时间 &#xff08;1&#xff09;客户端响应时间 瘦客户端——可忽略不计 胖客户端——内嵌大量逻辑处理&#xff0c;可能耗时较大&#xff0c;需关注 &#xff08;2&#xff09;网络响应时间——指网络传输交…

hibernateTools工具安装及使用总结(eclipse 3.6)

为什么80%的码农都做不了架构师&#xff1f;>>> 最近项目采用flexspringhibernate的框架开发,之前虽说有多年的Java开发经验了&#xff0c;但是一直使用的JDBC或者 ibatis&#xff0c;hibernate的使用还是大姑娘上轿头一回,网上都介绍说jboss的hibernateTools工具不…