小学四则运算题
package cn.gestwr.temp;
import java.math.BigDecimal;
import java.util.Random;
import java.util.Scanner;
public class Arithmetic {
static double sum=0.0;
public static void main(String[] args) {
System.out.print("四则运算数目:");
Scanner input=new Scanner(System.in);
int n = input.nextInt();
int x,y,z,k1,k2;
Random ra = new Random();
for(int i=0; i<n; ) {
//初始化
x=ra.nextInt(100);
k1=ra.nextInt(4);
y=ra.nextInt(100);
k2=ra.nextInt(4);
z=ra.nextInt(100);
//计算 判断符号
if(k2>1 && k1<1) {
sum=Count(k2,y,z);
if(sum<0)
continue;
Format();
sum=Count(k1,x,sum);
if(sum<0)
continue;
Format();
System.out.print(x);
Print(k1);
System.out.print(y);
Print(k2);
System.out.println(z+"="+sum);
}else {
sum=Count(k1,x,y);
if(sum<0)
continue;
Format();
sum=Count(k2,sum,z);
if(sum<0)
continue;
Format();
System.out.print(x);
Print(k1);
System.out.print(y);
Print(k2);
System.out.println(z+"="+sum);
}
//小学题 结果没有负数
if(sum>=0)
i++;
}
}
//判断符号并计算
private static double Count(int k,double x,double y) {
double s=0.0;
if(k==0) {
s = x+y;
}else if(k==1) {
s = x-y;
}else if(k==2) {
s = x*y;
}else if(k==3) {
s= x/y;
}
return s;
}
//打印运算符号
private static void Print(int k) {
switch(k) {
case 0:
System.out.print("+");
break;
case 1:
System.out.print("-");
break;
case 2:
System.out.print("*");
break;
case 3:
System.out.print("/");
break;
}
}
//格式化double 最多保留小数点后两位
public static void Format() {
BigDecimal bd = new BigDecimal(sum);
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP);
sum = bd.doubleValue();
}
}