1. 程式人生 > >HDU 1717 小數化分數2

HDU 1717 小數化分數2

#include<stdio.h>
#include<string.h>
int f(int x)
{
    int i, sum = 1;
    for(i = 1; i <= x; i++)
        sum *= 10;
    return sum;
}
int gcd(int a, int b)
{
    return b ? gcd(b, a%b) : a;
}
int main()
{
    int i, j, cas;
    char s[33];
    int x, y, t;
    scanf("%d", &cas);
    while(cas--)
    {
        scanf("%s", s);
        int a = 0, b = 0, p = 0, q = 0;
        int len = strlen(s);
        bool flag = 0;
        for(i = 2; i < len; i++)
        {
            if(s[i] == '(') {flag = 1; continue;}
            if(s[i] == ')') continue;
             a++; p = p*10 + s[i] - '0';
            if(!flag) {q = q*10 + s[i] - '0';}
            if(flag) b++;  
        }
        //printf("a = %d, b = %d, p = %d, q = %d\n", a, b, p, q);
        if(!flag)
        {
            y = f(a);
            x = p;
        }
        else
        {
            if(a == b)
            {
                x = p;
                y = f(b) - 1;
            }
            else
            {
                x = p - q;
                y = f(a) - f(a-b);
            }
            
        }
        t = gcd(x, y);
        x /= t;
        y /= t;
        printf("%d/%d\n", x, y);
    }
    return 0;
}


相關推薦

HDU 1717 小數分數2

#include<stdio.h> #include<string.h> int f(int x) { int i, sum = 1; for(i = 1;

HDU 1717 小數分數2【數學】

小數化分數2 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub

hdu 1717小數分數2

 眾所周知,有限小數是十進分數的另一種表現形式,因此,任何一個有限小數都可以直接寫成十分之幾、百分之幾、千分之幾……的數。那麼無限小數能否化成分數? 首先我們要明確,無限小數可按照小數部分是否迴圈分成兩類:無限迴圈小數和無限不迴圈小數。無限不迴圈小數不能化分數,這在中學將會得

HDU 1717 小數分數2(數學基本知識)

Sample Output 4/9 1/2 17/52 【思路分析】   該題的關鍵點就是迴圈小數化為分數,有一個結論,假如這個迴圈小數是0.(1234),其化為分數即為1234/9999,也就是迴圈的部分除以這個迴圈部分長度個9,即1234除以4個(1234的長度)9。證明如下:   設這個迴圈小數x為0.

hdu 1717 小數分數2 (數學)

小數化分數2 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2022    Accepted Submis

hdu 1717 小數分數2 (迴圈小數轉分數

本題可推出公式 首先跟你一個小數 令X= 0 . s1 s2 ..sn ( y1 y2 y3..ym ) 這樣的話我們把小數點分為三個部分,分別用三種顏色標記了! 我們可以把表示式轉換成:X * 10 ^n=s1s2..sn+0.y1y2..ym;    我們用S

1717 小數分數2

題目: Ray 在數學課上聽老師說,任何小數都能表示成分數的形式,他開始了化了起來,很快他就完成了,但他又想到一個問題,如何把一個迴圈小數化成分數呢?  請你寫一個程式不但可以將普通小數化成最簡分數,也可以把迴圈小數化成最簡分數。  Input第一行是一個整數N,表示

HDOJ 1717 小數分數2

連結:http://acm.hdu.edu.cn/showproblem.php?pid=1717 題目: 小數化分數2 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav

hdu 1717 小數分數

數學 題目分析:會補上的…… code: #include <iostream> #include <algorithm> #include <string> using namespace std; long long gcd(lo

HDOJ 1717 小數分數2 (數學,迴圈小數分數詳細講解)

 小數化分數2 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total

小數分數2 杭電1717

4/9 1/2 17/52 這個題目其實很簡單,但是我還是花了很多時間在上面,真是比較慚愧,開始我用的是這個思想,但是程式碼提交老是wrong,我 也不知道是為什麼,如果有興趣可以看看。 http://hi.baidu.com/niren_cn/blog/item/d6b62516badadf47f91

hdu1717 小數分數2

題目連結: 小數化分數2 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2921    Accepted

hdu1717 小數分數

std acc ef6 -a get nbsp c++ 只有一個 con 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1717 小數化分數2 Time Limit: 1000/1000 MS (Java/Others)

小數分數 模擬題

小數化分數 Problem Description 將給出的小數化為分數 Input 只有一行,為要轉換的小數(正負均有)。 注意:小數的格式有好幾種。為了方便起見,迴圈部分均被括號括起來了。 有前導0或後導0的例子:09.400(輸出47/5) 純迴圈小數的例子:0.(3)(輸

小數分數解題報告---模擬

Q - 小數化分數2 Description Ray 在數學課上聽老師說,任何小數都能表示成分數的形式,他開始了化了起來,很快他就完成了,但他又想到一個問題,如何把一個迴圈小數化成分數呢?  請你寫

小數化為最簡分式 (hdu 1717

hdu 1717 小數化分數 分析: 無限小數可按照小數部分是否迴圈分成兩類:無限迴圈小數和無限不迴圈小數。 無限不迴圈小數不能化分數; 考慮:無限迴圈小數又是如何化分數的呢? 例如:0.325656……×100=32.5656……① 0.325656……×10000

小數化為最簡分式 (hdu 1717

分析: 無限小數可按照小數部分是否迴圈分成兩類:無限迴圈小數和無限不迴圈小數。 無限不迴圈小數不能化分數; 考慮:無限迴圈小數又是如何化分數的呢? 例如:0.325656……×1

hdu 1565 方格取數(2)(網絡流之最大點權獨立集)

href aps flow bit 明顯 log sum dir 一個 題目鏈接:hdu 1565 方格取數(2) 題意: 有一個n*m的方格,每個方格有一個數,現在讓你選一些數。使得和最大。 選的數不能有相鄰的。 題解: 我們知道對於普通二分圖來說,最大獨立點集 + 最小

HDU 6050 17多校2 Funny Function(數學+乘法逆元)

for each -- pac 目前 .cn ron rst input style Problem Description Function Fx,ysatisfies:For given integers N and M,calculate Fm,1 modulo 1e

HDU 5387 Clock(分數類+模擬)

textbox ica struct role 2.4 pac eal esp 2.3 題意: 給你一個格式為hh:mm:ss的時間,問:該時間時針與分針、時針與秒針、分針與秒針之間夾角的度數是多少。 若夾角度數不是整數,則輸出最簡分數形式