实现函数
int is_find = 0;
void dfs(double *arr,double temp,int dep){
if(dep == (sizeof(arr)) && is_find==0 &&temp ==24){
is_find = 1;
}else{
if(dep < sizeof(arr) && is_find==0){
for(int i=0;i<4;i++){
if(i == 0){
dfs(arr,temp += arr[dep],dep+1);
}
if(i == 1){
dfs(arr,temp -= arr[dep],dep+1);
}
if(i == 2){
dfs(arr,temp *= arr[dep],dep+1);
}
if(i == 3){
dfs(arr,temp /= arr[dep],dep+1);
}
}
}
}
}
完整测试代码
#include <stdio.h>
#include <stdlib.h>
double list[120][4]