树uva112

来源:互联网 发布:项目管理优化保障措施 编辑:程序博客网 时间:2024/05/16 18:38

这题的输入有些麻烦,参考了人家的代码,很简洁,很厉害

#include<iostream>  #include<cstring>  #include<cstdlib>  #include<cstdio>  #include<cmath>  #include<string>  using namespace std;  int flag;  int t_sum(int n,int sum)  {      int data;      char c;      cin>>c;     //输入左括号      cin>>data;      if(!(cin==0))      {          sum+=data;          int ok1=t_sum(n,sum);  //左树          int ok2=t_sum(n,sum);  //右树          if(!ok1&&!ok2&&!flag)  //如果左右两树都为空,即是叶子,且flag还是0,那么对总和sum与n进行比较              if(sum==n)         //若相等则将flag赋为1                  flag=1;          cin>>c;    //输入右括号          return 1;      }      else      {          cin.clear();  //清除错误          cin>>c;          return 0;      }  }  int main()  {      int n;      while(cin>>n)      {          flag=0;          t_sum(n,0);          cout<<(flag?"yes":"no")<<endl;      }      return 0;  }  


0 0
原创粉丝点击