1. 程式人生 > 其它 >四則運算出題完整版(第三階段)

四則運算出題完整版(第三階段)

package szys;
import java.util.Random;
import java.util.Scanner;
public class ac {

public static void main(String[] args) {
System.out.println("請輸入列印的題目數:");
Scanner sc=new Scanner(System.in);
int e=sc.nextInt();
System.out.println("請輸入運算元的個數:");
int operation=sc.nextInt();
System.out.println("請輸入是否有乘除法:");
System.out.println("請輸入Y/N");
char cc=sc.next().charAt(0);
System.out.println("請輸入是否有括號:");
System.out.println("請輸入Y/N");
char kh=sc.next().charAt(0);
System.out.println("請輸入運算元的下限:");
int min=sc.nextInt();
System.out.println("請輸入運算元的上限:");
int max=sc.nextInt();
int[]b = new int[operation];
int[]c=new int[operation];
int[]a=new int[operation];
int[]d=new int[operation];
int sum=0;
Random r=new Random();
int num=1;
for(int y=0;y<e+sum;y++) {
for(int f=0;f<operation;f++){
a[f]=b[f];
d[f]=c[f];
}
for(int j=0;j<operation;j++) {//生成運算子號
//System.out.println(1123);
b[j]=r.nextInt(max-min+1)+min;
if(cc=='Y') {
c[j]= r.nextInt(4);
}
else {
c[j]= r.nextInt(2);
}
if(kh=='Y') {
int s=r.nextInt((operation-1)-1+1)+1;
int p=r.nextInt((operation-1)-s+1)+s;
for(int i=0;i<operation;i++) {//生成運算式子
if(s==i) {
System.out.print('(');
}
System.out.print(b[i]);
if(p==i) {
System.out.print(')');
}
if(i<operation-1) {
System.out.print(js(c[i]));
}
}
System.out.println('=');
}
else {
for(int w=0;w<operation;w++) {
System.out.print(b[w]);
if(w<operation-1) {
System.out.print(js(c[w]));
}
}
System.out.println('=');
}
}
for(int k=0;k<operation;k++) {//避免重複
if(a[k]==b[k]&&d[k]==c[k]) {
continue;
}
else {
num=0;
break;
}
}
if(num==1) {
sum++;
continue;
}
}
}
public static char js(int c) {//轉化運算子號
char a=0;
switch(c) {
case 0:a='+';
break;
case 1:a='-';
break;
case 2:a='*';
break;
case 3:a='/';
break;
}
return a;
}
}