枚举法——火柴棒等式

2023-10-11 04:40
文章标签 等式 火柴 枚举法

本文主要是介绍枚举法——火柴棒等式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

给你 n 根火柴棍,你可以拼出多少个形如 "A+B=C" 的等式?等式中的 A、B、C 是用火柴棍拼出的整数(若该数非零,则最高位不能是 0)。

用火柴棍拼数字 0-9 的拼法如图所示

注意:

  1. 加号与等号各自需要两根火柴棍

  2. 如果 A\neq B,则A+B=CB+A=C是不同的等式(A,B,C≥0)

  3. n根火柴棍必须全部用上

输入格式

输入一个整数n(n\leqslant 24)

输出格式

输出能拼成的不同等式的数目

输入样例

5

输出样例

0

n最大为24,则数字可用的火柴数最多为20个。最多可组成10个1,而10个1要组成三个数,所以每个数最大不超过1111(可以取数试一下,所需火柴数会超过24)。

#include<iostream>
using namespace std;
int shu(int n)//计算每个数字所需要的火柴数
{int a[10]={6,2,5,5,4,5,6,3,7,6};//数组存每个数字所需的火柴数,下标对应数字int s=0;while(n/10)//为真,则n至少为两位数{s+=a[n%10];//对火柴数累加n=n/10;}s+=a[n];//最后一位return s;
}
int main()
{int n,t=0;cin>>n;int C;for(int i=0;i<=1111;i++){for(int j=0;j<=1111;j++){C=i+j;if(shu(i)+shu(j)+shu(C)==n-4)//判断火柴棒数目{t++;}}}cout<<t;
}

这篇关于枚举法——火柴棒等式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/185594

相关文章

火柴游戏java版

代码 /*** 火柴游戏* <p>* <li>有24根火柴</li>* <li>组成 A + B = C 等式</li>* <li>总共有多少种适合方式?</li>* <br>* <h>分析:</h>* <li>除去"+"、"="四根,最多可用火柴根数20根。</li>* <li>全部用两根组合成"1",最大数值为1111。使用枚举法,A和B范围在0~1111,C为A+B。判断</li>** @

HYPERCASUAL - Simple Characters(卡通游戏火柴人物模型)

介绍HyperCasual - 简单角色! 一套低多边形角色资源,用于创建超休闲风格的游戏。 包含演示场景 角色(x10) 生化人、小丑、Flaty_Boss、女孩、守门员、英雄、亚马逊女战士、男人、红衣男人、修理工 每个网格大约有700-2000个顶点 角色设置与Mecanim兼容(本包中不包含动画) 着色器适用于可编写脚本的渲染管线(HD + LW) 下载:​​Unity资源商店链接资源

等式(数论/唯一分解定理)

链接: https://www.nowcoder.com/acm/contest/90/F 来源:牛客网 题目描述 给定n,求1/x + 1/y = 1/n (x<=y)的解数。(x、y、n均为正整数) 输入描述: 在第一行输入一个正整数T。接下来有T行,每行输入一个正整数n,请求出符合该方程要求的解数。(1<=n<=1e9) 输出描述: 输出符合该方程要求的解数。

P1149 [NOIP2008 提高组] 火柴棒等式(一个比较有意思的题)

P1149 [NOIP2008 提高组] 火柴棒等式 #include <bits/stdc++.h>using namespace std;int n, ans, a[11111]={6, 2, 5, 5, 4, 5, 6, 3, 7, 6};bool vis[11111][11111];int main(){cin >> n;//计算每个数需要的火柴棒for(int i=10;

Canvas加动画,实现火柴人跳绳效果

效果 涉及到的知识 1、canvas 2、path和二阶贝塞尔曲线 3、bitmap绘制 canvas 先引用google官方: The Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas t

算法:枚举法---kotlin

枚举法:效率低,循环所有的情况,找到正确答案 用于解决数学问题,还是很简单的。 比如,奥数里面: 算 法 描 述 题X题=题题题题题题 其中 算法描述题每一个为一个数字,请写出正确的数字。 ok,我们用枚举法去找出正确的答案 /*** Created by Administrator on 2017/10/19.*/fun main(args: Array<String>) {var

[Mdfs] lc473. 火柴拼正方形(剪枝优化+经典题+好题)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接:473. 火柴拼正方形 拔高、证明: [dfs] aw167. 木棒(dfs剪枝与优化+分类讨论+思维+好题) 2. 题目解析 水一篇。和之前的一个问题一模一样,在此不再赘述,写出来方便搜索。 [Mdfs] lc698. 划分为k个相等的子集(剪枝优化+经典题+好题) 时间复杂度:此类 dfs 和剪枝

c++【入门】火柴棒三角形问题

限制 时间限制 : 1 秒 内存限制 : 128 MB 题目 如下图所示,摆1个火柴棒三角形需要3根火柴,那么摆2个火柴棒三角形就需要6根火柴,请问摆n个火柴棒三角形需要多少根火柴? 输入 一个整数n,代表想要摆放的火柴棒三角形的数量 输出 一个整数,代表了需要多少根火柴的数量 样例 输入 3 输出 9 来源 基础问题 代码 #include<bits/s

整型数组处理算法(八)插入(+、-、空格)完成的等式:1 2 3 4 5 6 7 8 9=N[华为面试题]

转载自 有一个未完成的等式:1 2 3 4 5 6 7 8 9=N 当给出整数N的具体值后,请你在2,3,4,5,6,7,8,9这8个数字的每一个前面,或插入运算符号“+”,或插入一个运算符号“-”,或不插入任何运算符号,使等式成立,并统计出能使等式成立的算式总数,若无解,则输出0。 例如:取N为108时,共能写出15个不同的等式,以下就是其中的二个算式: 1+23+4+56+7+8+9=10

fzu——Problem 2125 简单的等式

Problem Description 现在有一个等式如下:x^2+s(x,m)x-n=0。其中s(x,m)表示把x写成m进制时,每个位数相加的和。现在,在给定n,m的情况下,求出满足等式的最小的正整数x。如果不存在,请输出-1。  Input 有T组测试数据。以下有T(T<=100)行,每行代表一组测试数据。每个测试数据有n(1<=n<=10^18),m(2<=m<=16)。