| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:新人贴代码留念,简单的递归In Reply To:新人贴代码留念,简单的递归 Posted by:Anz at 2017-02-01 11:19:36 > #include<iostream>
> #include<cstring>
> #include<cassert>
>
> using namespace std;
>
> string s;int cur;char a[5];
>
> void Change(char i)//穷举时改变数组用的函数
> {
> for(int j=0;j!=5;j++)
> a[j]=((i>>j)&00000001);
> }
> bool Cal()//递归
> {
> char c=s[cur];bool w,x;
> cur++;
> switch(c){
> case 'p':return a[0];
> case 'q':return a[1];
> case 'r':return a[2];
> case 's':return a[3];
> case 't':return a[4];
> case 'N':return !Cal();
> case 'K':w=Cal();x=Cal();return (w&&x);
> case 'A':w=Cal();x=Cal();return (w||x);
> case 'C':w=Cal();x=Cal();return (w<=x);
> case 'E':w=Cal();x=Cal();return (w==x);
> default :return 0;
> }
> }
> int main()
> {
> int f;
> while(1)
> {
> cin>>s;
> if(s=="0") break;
> f=1;
> for(char i=0;i!=32;i++)
> {
> cur=0;Change(i);
> if(!Cal()) {f=0;break;}
> }
> if(f==1) cout<<"tautology"<<endl;
> else cout<<"not"<<endl;
>
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator