UVA - 202 Repeating Decimals
生活随笔
收集整理的這篇文章主要介紹了
UVA - 202 Repeating Decimals
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Repeating Decimals
?UVA - 202?
題目傳送門
解決方法:模擬一下除法,及時記錄余數(shù),當一個余數(shù)第二次出現(xiàn)時證明開始循環(huán)
AC代碼
#include <cstdio> #include <iostream> #include <algorithm> #include <cmath> #include <cstdlib> #include <cstring> #include <map> #include <stack> #include <queue> #include <vector> #include <bitset> #include <set> #include <utility> #include <sstream> #include <iomanip> using namespace std; typedef long long ll; typedef unsigned long long ull; #define inf 0x3f3f3f3f #define rep(i,l,r) for(int i=l;i<=r;i++) #define lep(i,l,r) for(int i=l;i>=r;i--) #define ms(arr) memset(arr,0,sizeof(arr)) //priority_queue<int,vector<int> ,greater<int> >q; const int maxn = (int)1e5 + 5; const ll mod = 1e9+7; int yushu[maxn]; int shang[maxn]; int wei[maxn]; int main() {#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);#endif//freopen("out.txt", "w", stdout);ios::sync_with_stdio(0),cin.tie(0);int n,m;int cnt=0;while(scanf("%d %d",&n,&m)!=EOF){int k=n;ms(yushu);ms(shang);ms(wei);int count=0;shang[count++]=n/m;n=n%m;while(!wei[n]&&n){wei[n]=count;yushu[count]=n;shang[count++]=n*10/m;n=n*10%m;}printf("%d/%d = %d.",k,m,shang[0]);int i;for(i=1;i<count&&i<=50;i++){if(yushu[i]==n&&n)printf("(");printf("%d",shang[i]);}if(n==0)printf("(0");if(count>50)printf("...");printf(")\n");printf(" %d = number of digits in repeating cycle\n\n",!n?1:count-wei[n]);}return 0; }?
總結
以上是生活随笔為你收集整理的UVA - 202 Repeating Decimals的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神奇的口袋
- 下一篇: 递归思想完成n皇后问题