1088

a x b = c

将a,b,c用out统一输出

AC代码:

#include <cstdio>
#include <string>
using namespace std;
long long gcd(long long x,long long y){
    if(x == 0)
        return y;
    if(y == 0)
        return x;
    if(x < 0)
        x = -x;
    if(y < 0)
        y = -y;
    long long max,min;
    max = x > y ? x : y;
    min = x > y ? y : x;
    while(max % min != 0){
        long long tmp(min);
        min = max % min;
        max = tmp;
    }
    return min;
}
void out(long long an,long long ad){
    if(ad == 0){
        printf("Inf");
        return;
    }
    if(ad < 0){
        ad = -ad;
        an = -an;
    }
    long long ai,g;
    ai = an / ad;
    an = an - ai * ad;
    g = gcd(an,ad);
    an /= g;
    ad /= g;
    if(ai != 0){
        an = an > -an ? an : -an;
        if(an != 0){
            if(ai < 0){
                printf("(%lld %lld/%lld)",ai,an,ad);
            }
            else{
                printf("%lld %lld/%lld",ai,an,ad);
            }
        }
        else{
            if(ai < 0){
                printf("(%lld)",ai);
            }
            else
                printf("%lld",ai);
        }
    }
    else{
        if(an == 0)
            printf("0");
        else if(an < 0)
            printf("(%lld/%lld)",an,ad);
        else
            printf("%lld/%lld",an,ad);
    }
}
int main(){
    long long an,ad,bn,bd;
    scanf("%lld/%lld %lld/%lld",&an,&ad,&bn,&bd);
    out(an,ad);
    printf(" + ");
    out(bn,bd);
    printf(" = ");
    out(an*bd+bn*ad,ad*bd);
    printf("\n");

    out(an,ad);
    printf(" - ");
    out(bn,bd);
    printf(" = ");
    out(an*bd-bn*ad,ad*bd);
    printf("\n");

    out(an,ad);
    printf(" * ");
    out(bn,bd);
    printf(" = ");
    out(an*bn,ad*bd);
    printf("\n");

    out(an,ad);
    printf(" / ");
    out(bn,bd);
    printf(" = ");
    out(an*bd,ad*bn);
    printf("\n");

    return 0;
}
时间: 2024-11-08 11:05:51

1088的相关文章

poj 1088 滑雪 DP(dfs的记忆化搜索)

题目地址:http://poj.org/problem?id=1088 题目大意:给你一个m*n的矩阵 如果其中一个点高于另一个点 那么就可以从高点向下滑 直到没有可以下滑的时候 就得到一条下滑路径 求最大的下滑路径 分析:因为只能从高峰滑到低峰,无后效性,所以每个点都可以找到自己的最长下滑距离(只与自己高度有关).记忆每个点的最长下滑距离,当有另一个点的下滑路径遇到这个点的时候,直接加上这个点的最长下滑距离. dp递推式是,dp[x][y] = max(dp[x][y],dp[x+1][y]+

Lightoj 1088 - Points in Segments 【二分】

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1088 题意: 有一维的n个点和q条线段.询问每条线段上的点有多少个: 思路:寻找这些点中对于每条线段的上下界即可. 代码: #include <stdio.h> #include <ctime> #include <math.h> #include <limits.h> #include <complex> #include

九度OJ 1088 剩下的树

题目1088:剩下的树 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4253 解决:1907 题目描述: 有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,...,L共L+1个位置上有L+1棵树. 现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树. 可能有M(1<=M<=100)个区间,区间之间可能有重叠.现

【BZOJ】1088: [SCOI2005]扫雷Mine(递推)

http://www.lydsy.com/JudgeOnline/problem.php?id=1088 脑残去想递推去了... 对于每一个第二列的格子,考虑多种情况,然后转移.....QAQ 空间可以降到O(1)...我就不优化了.. 至于题解说的枚举第一行...orz完全想不到. 做法就是:(好麻烦,不说了...就是对应三个格子的状态然后转移 #include <cstdio> #include <cstring> #include <cmath> #include

poj - 1088 - 滑雪(dp)

题意:一个R * C的矩阵(1 <= R,C <= 100),元素代表该点的高度h(0<=h<=10000),从任意点出发,每次只能走上.下.左.右,且将要到的高度要比原高度小,求最长路. 题目链接:http://poj.org/problem?id=1088 -->>设dp[i][j]表示从ij位置出发的最长路,则状态转移方程为: dp[x][y] = max(dp[x][y], Dp(nNewX, nNewY) + 1); 时间复杂度:O(R * C) #inclu

POJ 1088 滑雪(记忆化搜索)

滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 92384   Accepted: 34948 Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道载一个区域中最长底滑坡.区域由一个二维数组给出.数组的每个数字代表点的高度.下面是一个例子 1 2 3 4 5 16 17

HDU字符串基础题(1020,1039,1062,1088,1161,1200,2017)

并不是很精简,随便改改A过了就没有再简化了. 1020. Problem Description Given a string containing only 'A' - 'Z', we could encode it using the following method: 1. Each sub-string containing k same characters should be encoded to "kX" where "X" is the only c

1088: [SCOI2005]扫雷Mine

1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1635  Solved: 979[Submit][Status] Description 相信大家都玩过扫雷的游戏.那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字表示和它8连通的格子里面雷的数目.现在棋盘是n×2的,第一列里面某些

hdu 1088 滑雪

果然书要结合题来看才有效果 通过这题对记忆化搜索有了初步的理解 碰到没有访问过的点 进行搜索 之后记录下该点能滑出的最远距离 碰到搜索过的点 直接加上 dp[i] 就可以了 #include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #include<queue> #include<stack> #

POJ 1088 滑雪 记忆化优化题解

本题有人写是DP,不过和DP还是有点差别的,应该主要是记忆化 Momoization 算法. 思路就是递归,然后在递归的过程把计算的结果记录起来,以便后面使用. 很经典的搜索题目,这种方法很多题目考到的. 关键还是如何把代码写清晰工整了,O(∩_∩)O~. #include <stdio.h> const int MAX_N = 101; int R, C; int arr[MAX_N][MAX_N]; int tbl[MAX_N][MAX_N]; inline int max(int a,