【硬货】解一下'你画我猜'中的字母竖式
起因是论坛大佬出的这道题目。手解解了很久感觉没有固定解,于是编程跑了一遍,发现有36组解:
结果是蛮令人惊讶的,比我想象中多得多,后来在大佬的提示下,才确定了是哪一组解。(这两金币有点要命
介绍下思路:
一、数据结构定义:
8个数字,C是显然的,由于是和的最高位,必定是1。(因为八个数字两两不同,不会有加上进位和超过20的情况)
a数组存放可能的取值。b存放除了C以外,7个字母代表的值。
二、数据初始化:
这里7个字母要在8个数字里选(1被占用了,剩下2~9,题目给了非0)。必须舍弃一个。然后从小到大赋值给a。
三、检查正确性:
就是按照竖式计算,sum是数字和,carry是进位(从右到左),remainder是取和的个位。判断每位是否与结果匹配即可。
四、打印结果:
懒得写在文件里了,直接打印到终端。按照竖式格式打印,由于终端print太快会有缺失,加了个Sleep函数。用静态成员变量记录Print的调用次数,也即正确的情况数。
五、主函数:
每层for循环,遍历每种8选7的取值。对b[]数组初始化,然后检查是否正确,如果正确打印结果,然后用next_permutation函数进入下一层全排列模式。
代码:
结果可自行验算,谢谢观看。(果然这种小学奥数题对大学生来说是有些勉强了hhh)
一脸懵逼,原来还有这种题目? 好家伙,真的是跑了一遍,楼主真是努力{:6_164:}为了两个金币 光是到分配值的部分就蒙圈了 有对我来说点太难了,没玩过你画我猜{:6_164:} 哈哈哈楼主太努力了,我当时手算了一下觉得不太对劲,想了想用软件跑一遍得结果更简单但嫌麻烦就没弄,没想到有人已经实践了 你画我猜区现在的题目都这么难了吗{:6_180:} 好烧脑!感觉要张脑子了! 这种难度的题我就假装没看到了{:4_114:} 这种题目我选择不猜,转头发个资源帖,赚得更多。 啊这,不明觉厉{:6_167:} 哇哦,编程大佬欸,为了题目专门写了代码,不过用计算机解决计算问题真的超方便 太硬核了吧,看来我真的是这个世界多余的 我的妈,画猜现在都这么硬核了嘛....
感谢分享 这题果然不是让手算的233333琢磨了一会儿觉得可能太多就放弃了。楼主执着的精神让人佩服的说~{:6_200:} 怎么感觉你画我猜已经变成另一个次元的东西了:lol 好家伙,这类题目的难度好像有亿点点大 咱是出题的那位()肥肠抱歉出了多解的题目qwq
是咱无聊在纸上配出来的式子,没试着解一下就直接发出来了。。以后会注意严谨性的{:4_100:}
另外楼主也真的蛮厉害的 追随送上 看数据已经看懵了,看不懂。 回想起acm的痛苦{:6_164:}
这就是我后来画画的原因.jpg