「java分母运算」分母是分数怎么计算
今天给各位分享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分母运算的信息别忘了在本站进行查找喔。
发布于:2022-11-22,除非注明,否则均为
原创文章,转载请注明出处。