原题链接P1149火柴棒等式
Mac网页上的复制粘贴有点问题(因为懒!!!),我就拿截图来将就一下哈!盆友们不要打我哈!!!
题解:
既然是要找出形如A+B=C这样的等式,那最简单的办法就是分别枚举A,B,C。接下来的问题就是:A,B,C的枚举范围是什么呢?我们只需要在0~1111之间枚举就可以了。为什么呢?因为题目中最多只有24根火柴棒即m<=24。除去“+”和“-”占用的4根火柴棍,那么最多剩下20根火柴棍。而0-9这十个数字中,1需要用到的火柴棍最少,只需要2根火柴棍。而20根火柴棍最多能组成10个1。因此A+B=C这个等式中A,B,C中任意一个数都不能超过1111。接下来就暴力求解就阔以了。
代码如下:
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int fun(int x)
{
int num=0;
int f[10]={6,2,5,5,4,5,6,3,7,6};
while(x/10!=0)
{
num+=f[x%10];
x=x/10;
}
num+