码迷,mamicode.com
首页 > 其他好文 > 详细

分数加减法

时间:2014-11-29 22:58:26      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   os   sp   java   for   on   

描述编写一个C程序,实现两个分数的加减法

 
输入
输入包含多行数据 
每行数据是一个字符串,格式是"a/boc/d"。 
其中a, b, c, d是一个0-9的整数。o是运算符"+"或者"-"。 

数据以EOF结束 
输入数据保证合法
输出
对于输入数据的每一行输出两个分数的运算结果。 
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数
样例输入
1/8+3/8
1/4-1/2
1/3-1/3
样例输出
1/2
-1/4
0

 1 import java.text.NumberFormat;
 2 import java.util.Arrays;
 3 import java.util.Scanner;
 4 
 5 public class Main {
 6     public static void main(String[] args) {
 7         Scanner scanner=new Scanner(System.in);
 8         char input[]=new char[7];
 9         char sign;
10         int a;
11         int b;
12         int c;
13         int d;
14         int fenMu;
15         int fenZi;
16         int flag;
17         int temp;
18         
19         while(scanner.hasNext()){
20             input=scanner.next().toCharArray();
21             
22             sign=input[3];
23             a=input[0]-‘0‘;
24             b=input[2]-‘0‘;
25             c=input[4]-‘0‘;
26             d=input[6]-‘0‘;
27             
28             fenMu=b*d/gcd(b,d);
29             
30             if(sign==‘+‘)
31                 fenZi=fenMu/b*a+fenMu/d*c;
32             
33             else
34                 fenZi=fenMu/b*a-fenMu/d*c;
35             
36             if(fenZi==0){
37                 System.out.println("0");
38                 continue;
39             }
40             
41             if(fenZi<0){
42                 System.out.print("-");
43                 fenZi=-fenZi;
44             }
45             
46             if(fenZi%fenMu==0)
47                 System.out.println(fenZi/fenMu);
48             
49             else{
50                 temp=gcd(fenZi,fenMu);
51                 System.out.println(fenZi/temp+"/"+fenMu/temp);
52             }
53         }
54     } 
55     
56     static int gcd(int a,int b){
57         int temp;
58         
59         if(a<b){
60             temp=a;
61             a=b;
62             b=temp;
63         }
64         
65         while(a%b!=0){
66             temp=a%b;
67             a=b;
68             b=temp;
69         }
70         
71         return b;
72     }
73 }

 

 

分数加减法

标签:style   blog   ar   color   os   sp   java   for   on   

原文地址:http://www.cnblogs.com/zqxLonely/p/4132050.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!