资源简介

在1、2、3...9(保持这个顺序)之间可任意放+或者-或者不放,使其结果等于100,输出所有可能的放法。用c语言编写。

资源截图

代码片段和文件信息

//
//  main.c
//  equal100
//
//  Created by Tong Tingting on 13-12-20.
//  Copyright (c) 2013年 Tong Tingting. All rights reserved.
//

#include 
#include 
#include 

char sarr[9]={‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘};
#define Line 8    //数字中间的间隔数总共可以添加3种运算符
#define MAXC 3    //总共可以添加3种运算符

void MatCombin(char (*)[3]int char *);

char strout[Line];  //9个数字之间运算符的排列组合
char mixx[2*Line+1];  //数字和运算符交叉结合后的字符串


int main (){
    int i;
    char mat[Line][MAXC] ={“+- ““+- ““+- ““+- ““+- ““+- ““+- ““+- “};  //每个间隔可以选取的运算符
    MatCombin(mat Line strout);
    void mix(char *achar *b);
    void cal(char *strm);
    exit (0);
}

//递归地进行组合对8个间隔位置上的运算符进行枚举
void MatCombin(char(*p)[MAXC]int nchar *q){
    int i;
    //这个p对应最后一行,考虑输出
    if (n==1) {
        for (i=0; i            if(!p[0][i]) return;
            *q = p[0][i]; //最后一个字符写入到strout
            mix(sarr strout);
        }
        
    }
    //不是最后一行,继续细分
    else {
        for (i=0; i            if(!p[0][i]) return;
            *q = p[0][i]; //写入一个字符
            MatCombin(p+1n-1q+1);
        }
    }
    
    
    return ;
}



void mix(char *achar *b)  //数字和运算符交叉连接
{

    int ilenth=0;
    for (i=0; i<9; i++) {

评论

共有 条评论