Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

JAVA 递归做的 AC了 注意逻辑运算符 && 如果左边值为false 右边就不执行了

Posted by dai418647405 at 2014-10-29 20:23:07 on Problem 3295
import java.util.Iterator;
import java.util.Scanner;
import java.util.Vector;

public class Main {
	
	private int p, q, r, s, t;
	private String inputString;
	private char[] inputStringToArray; 
	private Scanner sc;
	
	private int storey;//递归层数
	
	public Main() {
		sc = new Scanner(System.in);
		storey = 0;
	}
	
	public String tautologyOrNot() {
		
		inputString();
		
		if (inputString.equals("0")){	
			return "SystemExit";
		}
		
		
		boolean jumpOut = true;
		for (p = 0; p <= 1 && jumpOut; p ++)
			for (q = 0; q <= 1 && jumpOut; q ++)
				for (r = 0; r <= 1 && jumpOut; r ++)
					for (s = 0; s <= 1 && jumpOut; s ++)
						for (t = 0; t <= 1 && jumpOut; t ++) {
							
							storey = 0;
							if (!judgement()){
								jumpOut = false;
							}
						}
		
		if (jumpOut)
			return "tautology";
		else
			return "not";
		
		
	}
	
	private void inputString() {
		
		inputString = sc.next();
		
		inputStringToArray = inputString.toCharArray();
	}
	
	private boolean judgement() {
	
		 char symbol = inputStringToArray[storey ++];
		 
		 
		 
		switch(symbol) {
	
		case 'K':{ 	   boolean w = judgement();
					   boolean x = judgement();
					   if(w && x)
							return true;
					   else
						    return false;
		}
		case 'A' :{ 
						boolean w = judgement();
						boolean x = judgement();
						if(w || x)
					   		return true;
				   	   else
				   		    return false;
		}
		case 'N' :{
					  boolean w = judgement();
			   			if(!w)
							return true;
			   			else
				   		    return false;
		}
		case 'C' :{	  boolean w = judgement();
		   			  boolean x = judgement();
		   			  if( (!w) || x )
						return true;
				   	   else
				   		return false;
		}
		case 'E' :{
						boolean w = judgement();
						boolean x = judgement();
						if(w == x)
							return true;
				   	   	else
				   		   	return false;
		}
		case 'p' : {   if (p == 1) 
							return true;
					   else 
						   	return false;
		}
		case 'q' : {    if (q == 1)
							return true;
						else
							return false;
		}
		case 'r' : {	if (r ==1)
							return true;
						else
							return false;
		}
		case 's' : {	if (s == 1)
							return true;
						else
							return false;
		}
		case 't' : {	if (t == 1)
							return true;
						else
							return false;
		}
		
		default :return true;
		
		}
		
	}
	
	public static void main(String[] args) {
	
		Main tautology = new Main();
		Vector<String> result = new Vector<String>();
		String value;
		
		while(true) {
		
			value = tautology.tautologyOrNot();
			
			if(value.equals("SystemExit"))
				break;
			else
				result.add(value);
		}
		
		Iterator<String> iter;
		iter = result.iterator();

		while(iter.hasNext()){
			System.out.println(iter.next());

		}
	
	}
	

	
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator