zoukankan      html  css  js  c++  java
  • Tautology(POJ 3295编译原理)

    ~题目链接~

     http://poj.org/problem?id=3295

    输入

    ApNp
    ApNq
    0

    结果

    tautology
    not

     1.要把p,q,r,s,t的所有取值都搜索一遍

     2.'K'  a&b; 'A'  a||b; 'N' !a; 'C'  !a||b;'E' a==b;

     3.如果为永真式,输出tautology;否则 not

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    int n,flag,p,q,r,s,t;
    char str[100];
    
    int reach()
    {
        n++;
        switch(str[n])
        {
        case 'K':return reach()&reach();
        case 'A':return reach()|reach();
        case 'N':return !reach();
        case 'C':return !reach()|reach();
        case 'E':return reach()==reach();
        case 'p':return p;
        case 'q':return q;
        case 'r':return r;
        case 's':return s;
        case 't':return t;
        }
    }
    
    int main()
    {
        while(~scanf("%s",str) && str[0]!='0')
        {
            flag=0;
            //32中取值情况
            for(p=0; p<2; p++)
                for(q=0; q<2; q++)
                    for(r=0; r<2; r++)
                        for(s=0; s<2; s++)
                            for(t=0; t<2; t++)
                            {
                                n=-1;
                                if(!reach())
                                    flag=1;
                            }
            if(flag)
                printf("not
    ");
            else
                printf("tautology
    ");
        }
    
        return 0;
    }
    

      

  • 相关阅读:
    Linux内核同步
    Linux内核同步
    Linux内核同步
    Linux内核同步
    Linux内核同步
    Linux中断
    Linux中断
    Linux中断
    Linux中断
    Linux中断
  • 原文地址:https://www.cnblogs.com/guoyongzhi/p/3243268.html
Copyright © 2011-2022 走看看