2448. 添加运算符

1000ms 256MB 简单 枚举算法
题目描述
输入 4 个小于 10 的正整数,在不改变它们顺序的前提下,在每两个数之间添加 $+、-、*、/$(整除)这四种运算符。 计算规则:**从左往右严格计算**,不考虑运算符的优先级。 请问有多少种不同的添加方法,使得最终表达式的值等于给定的目标值 $n$? 例如:四个数字为 `1 2 3 4`,目标值 $n=24$。 有两种方法: 1. `(1+2+3)*4 = 24`(即 `1+2+3*4`) 2. `(1*2*3)*4 = 24`(即 `1*2*3*4`) 没有其他方法了,故输出 `2`。
输入格式
输入共两行: - 第一行:4 个小于 10 的正整数,用空格隔开。 - 第二行:一个给定的目标整数 $n$。
输出格式
- 一个整数,代表添加运算符后式子的值为 $n$ 的方法总数。
样例 1
输入 (Input)

                    
输出 (Output)

                    
- 运算符共 4 种,插入位置共 3 个,总枚举量为 $4^3 = 64$。 - 必须严格遵守从左往右计算的原则。
自测终端 stdin → stdout
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout

                
错误 stderr

                
CtrlEnter提交
自动保存已开启
操作成功
wzs_oj@kernel:~ — wzs-sh
guest@wzsoj:~$
刷新页面 F5
复制 Ctrl+C
粘贴 Ctrl+V
搜索题目
训练中心
站点公告
今日神谕
CSP 倒计时
排行榜
我的提交
Esc 关闭 Enter 跳转 支持模糊匹配数字