1*2*3*4*5*6*7*8*9=10

来源:百度知道 编辑:UC知道 时间:2024/07/06 15:19:49
1*2*3*4*5*6*7*8*9=10

注:"*"只能为"+""-"两种符号
问: 写出使等式成立的 样子!~

很容易。设定一串二进制数,0代表相加,1代表相减!以下是代码
#include <iostream>
#include <bitset>
using namespace std;
//递归求解
const int fun(int a,int b,int flg,int index = 0)
{
if (a == b)
return b;
int tmp = 1;
tmp<<=index;
if (flg&tmp)
return fun(a,b-1,flg,index+1) + b;
else
return fun(a,b-1,flg,index+1) - b;
}
int main()
{
//因为+,-交替,共有255种排列方法
for (size_t i = 0; i < 256;++i)
{
int res = fun(1,9,i);
if (10 == res)
{
cout<<"OK"<<endl;
break;
}
//在这里打印结果。0代表相减,1代表相加
bitset<8> myset(i);
cout<<res<<endl;
cout<<