Repeating Decimals (计算循环小数)
生活随笔
收集整理的這篇文章主要介紹了
Repeating Decimals (计算循环小数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
?
//計算循環小數,并找出循環節以及循環節的長度,最后輸出時若循環節大于50最后輸出省略號。 //求循環小數,記錄被除數,若被除數相同了則證明循環了。 //注意:即使是循環小數,但可能并不是從第一位小數開始循環 #include <iostream> #include<cstdio> #include<cstring> using namespace std; int rm[1010]; int vis[1000010]; int rec[1000010]; int main() {int a,b;while(~scanf("%d%d",&a,&b)){memset(vis,0,sizeof(vis));memset(rec,0,sizeof(rec));printf("%d/%d = %d",a,b,a/b);a=a%b;int k=1; //k為小數點后循環整數個數 while(!vis[a]&&a){vis[a]=k; //記錄被除數出現的位置rec[k]=a; //記錄被除數a=a*10; //一直保持被除數記錄為整數rm[k++]=a/b; //記錄小數點后的循環整數a=a%b;}printf(".");for(int i=1;i<k&&i<=50;++i){if(a&&a==rec[i])printf("(");printf("%d",rm[i]);}if(!a)printf("(0");if(k>50)printf("...");printf(")\n");printf(" %d = number of digits in repeating cycle\n\n",a?(k-vis[a]):1); //注意打印空行 }return 0; }?
轉載于:https://www.cnblogs.com/linxiaojie517/p/7795343.html
總結
以上是生活随笔為你收集整理的Repeating Decimals (计算循环小数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css(float浮动和clear清除)
- 下一篇: Unity2017.1官方UGUI文档翻