分支

来源:互联网 发布:软件打包有哪些 编辑:程序博客网 时间:2024/04/29 20:23
#include<stdio.h>#include<math.h>#include<iostream>#include<stack>#include<algorithm>using namespace std;int main(){    double num=5;    int space=4;    char a[5]={'0','+','-','*','/'};/// 分别代表+-*/    int b[5]={0};    for( b[1]=1;b[1]<=4;b[1]++)     for( b[2]=1;b[2]<=4;b[2]++)        for( b[3]=1;b[3]<=4;b[3]++)            for( b[4]=1;b[4]<=4;b[4]++)             {                 double left=0;double right=num;                 int flag=0;                 int brflag=0;///第一次修改,除数为0                 for(int i=1;i<=space;++i)                 {                     if(b[i]==1||b[i]==2) ///左右直接做flag时的,flag向右                     {                         if(flag==0||b[flag]==1)                         {                             left=left+right;right=num;                             flag=i;                         }                         else if(b[flag]==2)                          {                             left=left-right;right=num;                             flag=i;                         }                     }                     if(b[i]==3||b[i]==4) ///flag不变,右侧直接做                     {                         if(b[i]==3)                            {                                right=right*num;                            }                          else if(b[i]==4)                          {                              if(num==0) {brflag=1;break;}///第一次修改,除数为0                             right=right/num;                          }                     }                 }                  if(brflag==1) continue;                  double ans=0;                        if(flag==0||b[flag]==1)                         {                             ans=left+right;                         }                         else if(b[flag]==2)                          {                             ans=left-right;                         }if(ans==5) printf("5%c5%c5%c5%c5=5\n",a[b[1]],a[b[2]],a[b[3]],a[b[4]]);              }return 0;}

0 0
原创粉丝点击