123456789=100
哪位高手可以用算法帮我实现:123456789=100在等式左边任意插入“+”或“—”使等式成立。
程序代码:
#include <stdio.h>
char sign[9];
int res;
void search(int pos)
{
int val, i;
if(pos == 10) {
if(res == 100) {
for(i=0; i<9; ++i) {
if(sign[i]) printf("%c", sign[i]);
printf("%d", i+1);
}
printf("=100\n");
}
}
else {
val = 0;
for(i=pos; i<10; ++i) {
val += i;
res += val;
sign[pos-1] = '+';
search(i + 1);
res -= val;
res -= val;
sign[pos-1] = '-';
search(i + 1);
res += val;
val *= 10;
sign[i] = 0;
}
}
}
int main()
{
res = 0;
search(1);
return 0;
}