?!!!!!!!!!!!!!!!理清思路?然后一步步寫
問題描述
小藍在黑板上寫了一個形如?AopB=C 的算式,其中?A、B、C?都是非負整數,op 是?+、-、*、/(整除)四種運算之一。不過?A、op、B、C?這四部分有一部分被不小心的同學擦掉了。
給出這個不完整的算式,其中被擦掉的部分(被擦掉的部分是被完整的擦掉,不會出現留下若干位數字的情況)用???代替。請你輸出被擦掉的部分。
輸入描述
輸入只有一行,包含一個字符串代表如上文所述的不完整的算式。
輸出描述
如果被擦掉的部分是?A、B、C?之一,請輸出一個整數代表答案。如果被擦掉的部分是?op,請輸出+、-、*、/四個字符之一代表答案。
樣例輸入1
1+?=2
樣例輸出1
1
樣例輸入2
10?3=3
樣例輸出2
/
代碼示例
import java.util.Scanner;
public class Main{public static void main(String[]args){Scanner sc=new Scanner(System.in);String s=sc.nextLine();if(s.contains("+")||s.contains("-")||s.contains("*")||s.contains("/"))//當字符串中有+-*/負號,即缺ABC{String s1[]=s.split("=");//從=字符將整個字符串分成兩個字符串,"A op B"是s1[0],"C"是s1[1];String s2=s1[0];//即s2="A op B"if(s1[1].equals("?"))//即C被?代替了{int op=0;for(int i=0;i<s2.length();i++) {if(s2.charAt(i)<'0'||s2.charAt(i)>'9')//檢查運算符所在位置的索引{op=i;break;}}int a=Integer.parseInt(s2.substring(0,op));int b=Integer.parseInt(s2.substring(op+1,s2.length()));if(s.contains("+"))System.out.println(a+b);if(s.contains("-"))System.out.println(a-b);if(s.contains("*"))System.out.println(a*b);if(s.contains("/"))System.out.println(a/b);}else {//A或B被替代了int c=Integer.parseInt(s1[1]);int op=0;for(int i=0;i<s2.length();i++){if(s2.charAt(i)=='+'||s2.charAt(i)=='-'||s2.charAt(i)=='*'||s2.charAt(i)=='/')//檢查運算符所在位置的索引{op=i;break;}}int a=0;if(s2.charAt(op-1)>='0'&&s2.charAt(op-1)<='9')//有A缺B{a=Integer.parseInt(s2.substring(0,op));if(s.contains("/"))System.out.println(a/c);if(s.contains("-"))System.out.println(a-c);}else {//有B缺Aa=Integer.parseInt(s2.substring(op+1,s2.length()));if(s.contains("/"))System.out.println(a*c);if(s.contains("-"))System.out.println(a+c);}if(s.contains("+"))System.out.println(c-a);if(s.contains("*"))System.out.println(c/a);}}else {//缺運算符String s1[]=s.split("=");//從=字符將整個字符串分成兩個字符串int c=Integer.parseInt(s1[1]);//轉換成整數CString s2=s1[0];int op=0;for(int i=0;i<s2.length();i++){if(s2.charAt(i)<'0'||s2.charAt(i)>'9')//檢查運算符所在位置的索引{op=i;break;}}int a=Integer.parseInt(s2.substring(0,op));//轉換成整數Aint b=Integer.parseInt(s2.substring(op+1,s2.length()));//轉換成整數Bif(a+b==c)System.out.println("+");if(a-b==c)System.out.println("-");if(a*b==c)System.out.println("*");if(a/b==c)System.out.println("/");}}
}