「java分母运算」分母是分数怎么计算

博主:adminadmin 2022-11-22 06:43:05 131

今天给各位分享java分母运算的知识,其中也会对分母是分数怎么计算进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java怎么提取出任何一个表达式的分母

public class test111 { public static void main(String[] args){ String Sm = "((1+2)/(3+4))/((5+6)/(7+8))"; int sindx = 0; //记录起始位置 int eindx = 0; //记录结束位置 int amount = 0; //括号出现次数的标记 for(int i = 0; i Sm.length(); i++){ if(Sm.charAt(i) == '/' Sm.charAt(i + 1) == '('){ //这里我只是根据你给的题目列了一个条件,如果需要其他条件自己想一想,都差不多的 sindx = i+1; for(int j = i+1; j Sm.length(); j++){ if(Sm.charAt(j) == '('){ amount++ ; //如果出现左括号,标记+1 }else if(Sm.charAt(j) == ')'){ amount-- ; //如果出现右括号,标记-1 } if( amount == 0){ //当标记 = 0 也就是左右括号出现次数相等时输出分母 eindx = j; String s = new String(""); for( int k = sindx; k = eindx; k++){ s += Sm.charAt(k); } System.out.println("分母为: " + s); break; } } } } } }

大概就是这样子, 如果需要从键盘输入表达式让程序判断的话就在main()方法里整个

BufferedReader Br = new BufferedReader(new InputStreamReader(System.in));

String ss = Br.ReadLine();

总的思路就是把表达式转换成字符数组,然后遍历数组,当找到'/'时,尽量想出'/'之后可能出现的所有表达式形式,然后一一列出条件式输出可能存在的分母就行.

我擦.代码怎么这么乱...度娘抽了.. 你自己把代码复制下吧~ 呵呵

java怎么把小数转为分母为一位数的分数

设置循环i,从1到9。把小数乘以i再减去它的取整数部分,如果等于零,输出分母。记录减去的整数部分为分子。

java的分数运算问题

import java.util.Scanner;

public class Du{

public static void main(String args[]) throws Exception{

System.out.println("Please input a string in format xx/xx");

Scanner scanner = new Scanner(System.in);

String input = scanner.next();

String[] ary = input.split("/");

int numerator = Integer.parseInt(ary[0].trim());

int denominator = Integer.parseInt(ary[1].trim());

Fraction fra = new Fraction(numerator, denominator);

Fraction fra2 = new Fraction(15, 7);

Fraction fra3 = new Fraction(13, 12);

fra2.multiple(fra);//测试乘法

System.out.println("15/7 * 1/3 = " + fra2.toString());

fra.add(fra3);//测试加法

System.out.println("1/3 + 13/12 = " + fra.toString());

}

}

class Fraction{

private int numerator;//分子

private int denominator;//分母

public Fraction(int numerator, int denominator) throws Exception{

if(denominator == 0){//分母为0,出错

throw new Exception("Denominator can't be ZERO!");

}

this.numerator = numerator;

this.denominator = denominator;

}

public void multiple(Fraction fract2){//分数相乘

numerator *= fract2.numerator;//分子相乘

denominator *= fract2.denominator;//分母相乘

//结果约分

int lcd = getLCD(numerator, denominator);//最大公约数

numerator = numerator / lcd;

denominator = denominator /lcd;

}

public void add(Fraction fract2){

int gcm = getGCM(denominator, fract2.denominator);//最小公倍数作为分母

numerator *= gcm / denominator;//分子通分

fract2.numerator *= gcm / fract2.denominator;//第二个分子通分

numerator += fract2.numerator;//分子相加

denominator = gcm;//分母为最小公倍数

//约分

int lcd = getLCD(numerator, denominator);

if(lcd != 1){

numerator = numerator / lcd;

denominator = denominator / lcd;

}

}

public String toString(){

return numerator + "/" + denominator;

}

//求最大公约数

public static int getLCD(int num1, int num2){

int max = Math.max(num1, num2);

int min = Math.min(num1, num2);

while(max % min != 0){

int temp = max;

max = min;

min = temp % min;

}

return min;

}

//求最小公倍数

public static int getGCM(int num1, int num2){

return num1 * num2 /getLCD(num1, num2);

}

}

-----------------

Please input a string in format xx/xx

1/3

15/7 * 1/3 = 5/7

1/3 + 13/12 = 17/12

所有分数都可以通过乘10得倍数而达到分子和分母都是int类型的,所以没有问题的。

java分母运算的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于分母是分数怎么计算、java分母运算的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。