四则运算的设计思路:
1.顶一个两个静态方法,一个yunsuan1()(输出四则运算)返回String字符串;一个zuidagongyueshu()(在yunsuan()中调用将分子分母化成最简);
2.在main方法中调用yunsuan1();输出四则运算表达式;
3.查重,将yunsuan1()中反回的字符串与已储存的运算表达式比较,如果相同,则不输出。
源代码:
package size;
import java.util.Scanner;
public class yunsuan {
public static void main(String args[])
{
int a =0;
Scanner input = new Scanner(System.in);
System.out.println("请输入您想要的四则运算个数(小于100道题):");
a = input.nextInt();
String A[]=new String[100];
int jilu=0;
String b=null;
for(int x=0;x<a;x++)
{
b=yunsuan1();
for(int i=0;i<=jilu;i++)
{
if(b.equals(A[i]));
break;
}
A[jilu]=b;
System.out.println(A[jilu]);
}
}
static String yunsuan1()
{
int i=(int)(Math.random()*100);
int j=(int)(Math.random()*100);
int z=1+(int)(Math.random()*4);
char x;
int jieguo;
String jieguo1 = null;
if(z==1)
{x='+';jieguo=i+j;
jieguo1=String.valueOf(jieguo);
}
else if(z==2)
{x='-';jieguo=i-j;
jieguo1=String.valueOf(jieguo);}
else if(z==3)
{x='/';
int d=i/j;
int s=i%j;
int p=zuidagongyueshu(s, j);
s=s/p;
int a=j/p;
if(d!=0&&s!=0)
{
jieguo1=String.valueOf(d)+" "+String.valueOf(s)+"/"+String.valueOf(a);
}
else if(d==0&&s!=0)
{
jieguo1=String.valueOf(s)+"/"+String.valueOf(a);
}
else if(s==0)
{
jieguo1=String.valueOf(d);
}
}
else
{x='*';jieguo=i*j;
jieguo1=String.valueOf(jieguo);}
String suanshi=null;
suanshi=String.valueOf(i)+String.valueOf(x)+String.valueOf(j)+"="+jieguo1;
return suanshi;
}
static int zuidagongyueshu(int a,int b)
{
int shu = 1,min,max;
if(a>=b)
{
min=b;
max=a;
}
else
{
min=a;
max=b;
}
for(int i=1;i<=min;i++)
{
if(max%i==0&&min%i==0)
shu=i;
}
return shu;
}
}
截图: