日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

循环小数

發布時間:2023/12/16 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 循环小数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述
循環小數就是如同1/3的小數形式0.3333…… ,小數點后的3是無限的,19/99的小數形式為0.1919……,有無限個19循環。
現在你接到一個任務,就是由無限循環小數,還原回最簡分數的形式,且0.3333……我們只用循環子串3表示,0.1919……用循環子串19表示。

解答要求
時間限制:1000ms, 內存限制:64MB
輸入
輸入一個小數的循環子串s,s的長度不超過10。輸入為0時結束輸入。

輸出
輸出循環小數的最簡分數形式。

樣例
輸入樣例 1 復制

3
19
0
輸出樣例 1

1/3
19/99

//we have defined the necessary header files here for this problem. //If additional header files are needed in your program, please import here. //a=0.xxb,那么10a=x.xxb;相減即可9a=xb;x=9a/b; 0.333...*10=3.333... a=0.333... 10a-a=3 a=3/9=1/3 //a=0.xyxyb,那么100a=xy.xyb;相減即可,99a=xy,xy=99a/b; //依次類推; //需要注意的是,樣例中有01這樣的東西,所以讀入分子時候不能讀入整數類型,應該按照字符串讀入; //注意最后約分 //求最大公約數,輾轉相除法 int gcd(int a,int b) {int temp;while(b){temp=a%b;a=b;b=temp; }return a; } int main(){int num;char s[10];int denominator;while(scanf("%s",s)){if(s[0]=='0'&&s[1]=='\0')break;denominator=pow(10,strlen(s))-1; //分母 比如 1/3=3/9=3/(10-1)num=gcd(denominator,atoi(s)); //字符串轉intprintf("%d/%d\n",atoi(s)/num,denominator/num);}return 0; }

總結

以上是生活随笔為你收集整理的循环小数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。