鱼C论坛

 找回密码
 立即注册
查看: 3469|回复: 32

[已解决]程序制作时的一个大问题,请大佬求助TOT【第二弹】

[复制链接]
发表于 2022-11-28 10:21:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zhangjinxuan 于 2022-11-28 17:26 编辑

上一弹:https://fishc.com.cn/thread-219377-1-1.html

最近在做24点计算器,计算的函数写好了,但是有一个问题

先说思路,我的思路是这样的,就是深搜,搜所有算式,搜到了就返回计算的算式

但是算式从左往右计算才可以得到 24,因此写了一个加括号的函数

正当我以为程序就大功告成时,我忽然发现,这个程序他算不出来 3 3 8 8 !

补充:3 3 8 8 的解为: 8 / (3 - 8 / 3)

很明显,我的思路错了

正如@tommyyu 所说的那样:
我的意思是这种方法可能不一定能够求出答案,因为会有那种必须是不按照顺序的算式
链接:https://fishc.com.cn/forum.php?m ... 883&ptid=219377


哎,如果我当时听他的劝告那就没有什么事了啊,现在倒好,程序差不多要完工,结果发现了一个大问题,这不就类似于全部重来吗


这是我计算类的关键代码:
//防止抄袭,已撤销


如果你还不知道我在说啥,那就当这道题来做:

给定两个数字 n (3 <= n <= 8), m (-100000 <= m <= 100000),接下来输入 n 个数 (设数字为 i,那么 -10000 <= i <= 10000),最后输出这些数字可不可以通过加减乘除凑成 m,可以则输出算式,算式中可以出现括号

样例:
4 24
1 2 3 4
(1+2+3)*4=24
输出其一解即可

大家有思路吗,我可不想半途就废啊
最佳答案
2022-11-28 14:43:57
zhangjinxuan 发表于 2022-11-28 14:29
噢噢噢噢噢噢噢哦哦哦(鸡叫声) !!!!!

我想到办法了!!!!

我还是感觉这玩意会掉精度,需要写一个分数类,或者不能直接判等
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-28 11:16:30 | 显示全部楼层

回帖奖励 +2 鱼币

感觉不是很难,我研究研究
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-28 11:20:37 | 显示全部楼层
人造人 发表于 2022-11-28 11:16
感觉不是很难,我研究研究

网上的差不多都是枚举法,可我不想用枚举法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-28 11:23:26 | 显示全部楼层
思路简单,就是枚举,举出所有的可能
两层枚举,第1层举出所有运算符组合
第2层给第1层的结果加括号,枚举所有括号组合
然后再弄一个计算算式结果的函数来计算枚举出的这些算式的结果

感觉不难,我去尝试着按这个思路写一写

评分

参与人数 1鱼币 +1 收起 理由
zhangjinxuan + 1 八个数字怎么办???

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-28 11:24:12 | 显示全部楼层
人造人 发表于 2022-11-28 11:23
思路简单,就是枚举,举出所有的可能
两层枚举,第1层举出所有运算符组合
第2层给第1层的结果加括号,枚 ...

怎么玩,可能有8个数字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-28 11:27:09 | 显示全部楼层
zhangjinxuan 发表于 2022-11-28 11:20
网上的差不多都是枚举法,可我不想用枚举法

?
void dfs(int i, int s) { //深搜找答案
这是在做什么?这不就是在枚举么?枚举所有的可能
这不是枚举这是什么?

你这不也是枚举么?只不过你这是1层,而我想的是2层
运算符和括号的所有组合
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-28 11:28:58 | 显示全部楼层
人造人 发表于 2022-11-28 11:23
思路简单,就是枚举,举出所有的可能
两层枚举,第1层举出所有运算符组合
第2层给第1层的结果加括号,枚 ...

枚举,看起来你没有看懂我的描述
我先去用代码实现出来再说

评分

参与人数 1鱼币 +1 收起 理由
zhangjinxuan + 1 发消息,我被吞帖了

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-28 11:30:34 | 显示全部楼层
人造人 发表于 2022-11-28 11:23
思路简单,就是枚举,举出所有的可能
两层枚举,第1层举出所有运算符组合
第2层给第1层的结果加括号,枚 ...

枚举了还在乎有多少个数字吗?
管你多少个数字,枚举所有的组合
^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-28 11:31:16 | 显示全部楼层
人造人 发表于 2022-11-28 11:28
枚举,看起来你没有看懂我的描述
我先去用代码实现出来再说

好的,那我先去写代码了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-28 11:33:34 | 显示全部楼层
人造人 发表于 2022-11-28 11:30
枚举了还在乎有多少个数字吗?
管你多少个数字,枚举所有的组合
^_^

有道理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-28 11:52:49 | 显示全部楼层
不支持浮点数是吧?
就是说  2 / 3 的结果是 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-28 11:53:48 | 显示全部楼层
人造人 发表于 2022-11-28 11:52
不支持浮点数是吧?
就是说  2 / 3 的结果是 0


肯定要支持浮点数,不然 3 3 8 8 算不出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-28 11:54:21 | 显示全部楼层
zhangjinxuan 发表于 2022-11-28 11:53
肯定要支持浮点数,不然 3 3 8 8 算不出来

神马玩意儿?又不吞帖了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-28 11:54:49 | 显示全部楼层

回帖奖励 +2 鱼币

人造人 发表于 2022-11-28 11:52
不支持浮点数是吧?
就是说  2 / 3 的结果是 0

看他的例子,应该需要支持分数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-28 11:59:18 | 显示全部楼层
好的,我研究研究
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-28 12:13:19 | 显示全部楼层
代码贴错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-28 12:30:27 | 显示全部楼层

回帖奖励 +2 鱼币

只想领个币~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-28 12:31:28 | 显示全部楼层

回帖奖励 +2 鱼币

围观大佬~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-28 12:40:42 | 显示全部楼层

你干嘛,你们
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-28 14:16:10 | 显示全部楼层

你就光靠领币赚了将近300鱼币,啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 12:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表