程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu1717 小數化分數2

hdu1717 小數化分數2

編輯:C++入門知識

題目鏈接:

http://acm.hdu.edu.cn/showproblem.php?pid=1717

小數化分數2

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2921 Accepted Submission(s): 1187


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

Input 第一行是一個整數N,表示有多少組數據。
每組數據只有一個純小數,也就是整數部分為0。小數的位數不超過9位,循環部分用()括起來。

Output 對每一個對應的小數化成最簡分數後輸出,占一行。
Sample Input
3
0.(4)
0.5
0.32(692307)

Sample Output
4/9
1/2
17/52

Source 2007省賽集訓隊練習賽(2)
Recommend lcy | We have carefully selected several similar problems for you: 1715 1716 1166 1719 1722

這個題目參見百度

http://zhidao.baidu.com/link?url=cJ2IRdzhGzhB3Ct4l0hic1K31tF-tKeb5oI0YlKE5huks_FNDHsNYEfXPfvV1yZTH9XWpU0eOosRlvOlI-MAOa

代碼為:

#include
#include
const int maxn=10+10;
char str[maxn];

int gcd(int a,int b)
{
    return b==0?a:gcd(b,a%b);
}

int cal1(int x)
{
    int ans=1;
    for(int i=1;i<=x;i++)
        ans=ans*10;
    return ans;
}

int cal2(int x)
{
    int ans=0;
    for(int i=1;i<=x;i++)
        ans=ans*10+9;
    return ans;
}

int main()
{
    int t,ok,len,start,end,num;
    int son,mother,extra;
    int ans;
    scanf("%d",&t);
    while(t--)
    {
        ok=1;
        scanf("%s",str);
        len=strlen(str);
        for(int i=0;i

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved