紫书习题3-8 循环小数(Repeating Decimals, ACM/ICPC World Finals 1990, UVa202)
输入整数a和b(0≤a≤3000,1≤b≤3000),输 出a/b的循环小数表示以及循环节长度。例如 a=5,b=43,小数表示为0. (116279069767441860465),循环节长度为21。
思路:
关键在于找循环节,用sg来存储每一次的商,用yu数组来存储每一次的余数。在计算小数部分时每次都将上一次的余数乘十作为本次的被除数,依次进行下去直到找到某一次的商和余数在前面出现过,即找到了循环节。
#include<bits/stdc++.h>
using namespace std;
#define maxx 1000
int main(