首页 > 其他 > 详细

四则运算

时间:2017-03-02 20:36:57      阅读:244      评论:0      收藏:0      [点我收藏+]
package test;
import java.util.*;
public class siZe {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        int N;
        int mid;
        System.out.println("请输入题目的总数:");
        N = scan.nextInt();
        String[] timu = new String[N];//用于存储题目
        if(N%2== 0)
            mid = N/2;
        else
            mid = (N-1)/2;
        for(int i = 0;i<mid;i++){
            timu = zhengShu(N);
            System.out.println(i+1 + ".)  "+timu[i]);
            
        }
        for(int i = mid;i<N;i++){
            timu = zhenFenshu(N);
            System.out.println(i+1 + ".)  "+timu[i]);
        }

        
        

    }
    
    public static String[] zhengShu(int n){
        String[] timu = new String[n];
        String linshi = "";
        int num1,num2,singal = 0;
        int i = 0;//统计次数
        Random random = new Random();
        
        while(i < n){
            num1 = random.nextInt(100);
            num2 = random.nextInt(100);
            singal = random.nextInt(4);
            
            if(singal == 0) 
                linshi =  ""+num1 + "+" + num2 + "=" + num1+num2;
            if(singal == 1&&num1>num2)
                linshi =  ""+num1 + "-" + num2 + "=" + (num1-num2);
            if(singal == 2) 
                linshi =  ""+num1 + "*" + num2 + "=" + num1*num2;
            if(singal == 3&&num2!=0&&num1%num2 == 0) 
                linshi =  ""+num1 + "/" + num2 + "=" + num1/num2;
            if(bChongFu(timu,linshi,i)){
                timu[i] = linshi;
                i++;
            }
            
        }
        return timu;
        
    }
    
    public static String[] zhenFenshu(int n){
        String[] timu = new String[n];
        String linshi = "";
        int num1,num2,singal, x , y  = 0; //num1、num2为分子,a、b为分子
        int i = 0;//统计次数
        Random random = new Random();
        while(i < n){
            num1 = random.nextInt(100);
            num2 = random.nextInt(100);
            singal = random.nextInt(4);
            x = random.nextInt(100);
            y = random.nextInt(100);
            
            if(singal == 0 && y!=0 && num1*y+num2*x<=x*y) 
                linshi =  ""+num1 + "/"  + x +" + "+ num2 + "/" + y + "=" + simpleNumber(num1*y+num2*x,x*y);
            if(singal == 1 && y!=0 && num1*y+num2*x<=x*y) 
                linshi =  ""+num1 + "/"  + x +" - "+ num2 + "/" + y + "=" + simpleNumber(num1*y-num2*x,x*y);
            if(singal == 2 && y!=0 && num1*num2<=x*y) 
                linshi =  ""+num1 + "/"  + x +" * "+ num2 + "/" + y + "=" +simpleNumber (num1*num2,x*y);
            if(singal == 3 && y!=0 && num1*y<=num2*x) 
                linshi =  ""+num1 + "/"  + x + " / "+num2 + "/" + y + "=" + simpleNumber(num1*y,num2*x);
            if(bChongFu(timu,linshi,i)){
                timu[i] = linshi;
                i++;
            }
        }
        return timu;
        
    }
    
    
    public static String simpleNumber(int f1,int f2){
        int maxYs = 1;
        for(int i = f1;i>=1;i--){
            if(f1%i==0 && f2%i==0){
                maxYs = i;
                break;
            }
        }
        f1 = f1 / maxYs;
        f2 = f2 / maxYs;
        if(f1 == 0)
            return "0";
        else
            return  +f1+"/"+f2;
}
    
    public static boolean bChongFu(String[] timu,String linshi,int n){
        for(int i = 0;i<n;i++){
            if(timu[i].equals(linshi))
                return false;
        }
        return true;
        
    }
    

}

整数、真分数四则运算。

未解决带有小括号的运算!

技术分享

 

四则运算

原文:http://www.cnblogs.com/XiaoPiHaiEr/p/6492381.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!