分数的化简

题目:我们知道分数由分子和分母组成,所以给定你两个整数(可负,可正),第一个代表分子,第二个代表分母。你能不能把他们化为最简单的形式呢?例如: 输入: -4 8 ; 输出:-1/2

void main(){

int a,b;
int i=1;
int flag=i;//最大公约数
int flag2=0;//a,b中负号的个数
scanf("%d %d",&a,&b);

if(b == 0){return;}//分母不能为0
if(a == 0){//分子为0时,结果是0
    printf("%d/%d = %d\n",a,b,0);
    return ;
}
if(a<0){
    flag2++;
    a = -a;
}
if(b<0){
    flag2++;
    b = -b;
}

while( i <= (a>b?b:a) ){
    if(a%i==0 && b%i==0){
        flag = i;//找到能被a,b整除的数
    }
    ++i;
}

printf("最大公约数是:%d\n",flag);
if(flag2 == 1){
    printf(" -%d/%d\n",a/flag,b/flag);
}else{
    printf(" %d/%d\n",a/flag,b/flag);
}

}
时间: 2024-08-02 14:34:35

分数的化简的相关文章

两分数求和化最简【杭电-2503】 附题

/* a/b + c/d Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7731    Accepted Submission(s): 4462 Problem Description 给你2个分数,求他们的和,并要求和为最简形式. Input 输入首先包含一个正整数T(T<=1000),表示有T组测试数据,然后是T行数据,每行包含四

4096!——化简的2048游戏

游戏介绍: 这个能轻松到达 4096. 所以取名为 4096了. github地址是:https://github.com/chilly/4096 如果想直接玩游戏访问 4096.chillyc.info 这个4096 是直接copy的2048. 这个游戏需要消耗比较多的脑力.当然费了脑力还要拼拼运气.原因在于生成随机方块的地方90%会生成2,10%会生成4. 最后一搏的那个方块很有可能会因为2,4生成的问题导致游戏失败. 为什么要做这个游戏 这个原因其实是为让LP打到更高的分数.当然还要有些难

数学常用化简技巧与常用公式【运算能力辅导】

A.代数部分 1. 繁分式化简分式 : \(\cfrac{\frac{1}{a}+\frac{2}{b}+\frac{1}{c}}{\frac{3}{ac}-\frac{1}{b}+\frac{4}{bc}}=\cfrac{(\frac{1}{a}+\frac{2}{b}+\frac{1}{c})\times abc}{(\frac{3}{ac}-\frac{1}{b}+\frac{4}{bc})\times abc}=\cfrac{bc+2ac+ab}{3b-ac+4a}\):同乘 2.分式中

常用数学化简技巧与常用公式【运算能力辅导】[编辑中]

前言 与其不停的抱怨学生的运算弱鸡,不如我们自己静下心来,好好的作以整理和总结,以期对他们有所帮助.另外还要注意体会数学化简的方向和方法:2019高考数学Ⅱ卷的第4题,让许多学生不知所云,就是例证. 引例[2019年高考数学试卷理科新课标Ⅱ第4题]原题目略,将高考真题中的物理知识背景省略,高度抽象就得到了如下的数学题目: 已知公式:\(\cfrac{M_1}{(R+r)^2}+\cfrac{M_2}{r^2}=(R+r)\cfrac{M_1}{R^3}\),且已知\(\alpha=\cfrac{

卡诺图简单逻辑化简与五变量卡诺图化简

一.格雷码编码规则 画卡诺图的时候需要先将所有变量可能以格雷码的形式排列在方格两侧,所有变量有2^n个,虽然我们常用的变量为四个及以下,可以熟记格雷码,但为了学习还是有必要了解格雷码的编码规则.格雷码的基本特点就是任意两个相邻的代码只有一位二进制数不同,这样在数字电路中变化时每次就只有一位发生变化,提高了电路的稳定性. 规则: 自然二进制数到格雷码: 保留二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似. 格雷码到自然二进制数

逻辑函数的化简 【数字电路】

逻辑函数的化简 先补点各种门的 basic knowledge NAND 与非 NOR或非 XOR异或 XNOR 同或 对于同或,异或之前一直没搞明白....那个该死的标记老是混淆,也不知道为嘛标记的发明人为嘛要那么标记 ...现在知道了XOR...所以异或的标记是一个圈中间一把×             化简: 上面预设的ABCD的值输出结果是1 至于化简过程是为嘛...这个就是一步步化简....各种求并消项 切记!不要搞这种傻事! 然后就是另外一个很重要的化简方法--卡诺图 将n变量的全部最

HDU 5912 Fraction(模拟——分子式化简求解)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5912 Problem Description Mr. Frog recently studied how to add two fractions up, and he came up with an evil idea to trouble you by asking you to calculate the result of the formula below: As a talent, c

线性代数-矩阵-【5】矩阵化简 C和C++实现

点击这里可以跳转至 [1]矩阵汇总:http://www.cnblogs.com/HongYi-Liang/p/7287369.html [2]矩阵生成:http://www.cnblogs.com/HongYi-Liang/p/7275278.html [3]矩阵加减:http://www.cnblogs.com/HongYi-Liang/p/7287403.html [4]矩阵点乘:http://www.cnblogs.com/HongYi-Liang/p/7287324.html [5]矩

UVA - 10886 - Standard Deviation(化简 + 暴力)

题意:求如下函数产生的值的前 n 项的标准差(1 <= n <= 10000000,0 <= seed < 2^64). long double gen(){ static const long double Z = ( long double )1.0 / (1LL<<32); seed >>= 16; seed &= ( 1ULL << 32 ) - 1; seed *= seed; return seed * Z; } 写出方差的式