c语言1 2 3 4 5 6 7 8 9 = 91.巧填运算符.在下式的方块中填上加号或减号,使等式成立,共有多少种填法?把每种填法的式子打印出来.1 2 3 4 5 6 7 8 9 = 9

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 04:22:43
c语言1 2 3 4 5 6 7 8 9 = 91.巧填运算符.在下式的方块中填上加号或减号,使等式成立,共有多少种填法?把每种填法的式子打印出来.1 2 3 4 5 6 7 8 9 = 9

c语言1 2 3 4 5 6 7 8 9 = 91.巧填运算符.在下式的方块中填上加号或减号,使等式成立,共有多少种填法?把每种填法的式子打印出来.1 2 3 4 5 6 7 8 9 = 9
c语言1 2 3 4 5 6 7 8 9 = 9
1.巧填运算符.
在下式的方块中填上加号或减号,使等式成立,共有多少种填法?把每种填法的式子打印出来.
1 2 3 4 5 6 7 8 9 = 9

c语言1 2 3 4 5 6 7 8 9 = 91.巧填运算符.在下式的方块中填上加号或减号,使等式成立,共有多少种填法?把每种填法的式子打印出来.1 2 3 4 5 6 7 8 9 = 9
int num[9] = {1,2,3,4,5,6,7,8,9};
char ans[9];
void display()
{
    int i;
    for(i = 0;i < 8;++i) {
        printf("%d %c ",num[i],ans[i]);
    }
    printf("9 = 9\n");
}
void dfs(int res,int from)
{
    if(from == 9) {if(res == 9) display();}
    else {
        ans[from-1] = '+';
        dfs(res+num[from],from+1);
        ans[from-1] = '-';
        dfs(res-num[from],from+1);
    }
}

void main()
{
    ans[8] = '\0';
    dfs(1,1);
}

不知道对错,不知道玩不完全!