题目描述
这样的分式运算我们都会。请编程计算两个分数相减的结果。
输入格式
输入文件名:634.in
第一行2个整数a和b,表示一个分数
,1<=a<b <=10000。
第二行2个整数c和d,表示一个分数
,1<=a<b <=10000。
输入数据保证计算结果为正。
输出格式
输出文件名:634.out
2个整数,表示结果。
提示:运算结果分式要约分。
输入/输出例子1
输入:
4 7
1 3
输出:
5 21
程序
#include<bits/stdc++.h>
using namespace std;
long long a,b,c,d,t,y;
int main(){
cin>>a>>b>>c>>d;
y=a*d-c*b,t=b*d;
if(y==0)cout<<"0";
else
{
for(int i=10000;i!=0;i--)
{
if(y%i==0&&t%i==0){y/=i,t/=i;break;}
if(t%y==0){t/=y,y=1;break;}
}
cout<<y<<" "<<t;
}
return 0;
}
小知识
C++ 中 break 语句有以下两种用法:
- 当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。
- 它可用于终止 switch 语句中的一个 case。
如果您使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。
语法
C++ 中 break 语句的语法:
break;
流程图
实例
实例
#include <iostream>
using namespace std;
int main ()
{
// 局部变量声明
int a = 10;
// do 循环执行
do
{
cout << "a 的值:" << a << endl;
a = a + 1;
if( a > 15)
{
// 终止循环
break;
}
}while( a < 20 );
return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
a 的值: 10 a 的值: 11 a 的值: 12 a 的值: 13 a 的值: 14 a 的值: 15