题目(斯伦贝谢 slb 校园招聘试题) 给定两个整数M和N满足 < M < N < 现在要求求出来M/N的精确值也就是说如果能够整除那么需要得到结果如果不能整除那么要求是得到小数点后面到第一个循环节结束的地方 并且指出循环节从小数点后第几位开始小数点后第几位结束 答案 初始化 index = A[i] = ; //(i=;) B[i] = ; //(i=;) int begin = ; int end = ; 然后 while(M != ) { if(B[M] != ) { begin = B[M]; end = index; break; } B[M] = index; A[index] = M*/N; M = M* % N; index++; } 然后输出结果就OK了 举个例子/ 编号 余数 当前位 (初始个位数是后面开始小数点之后的) (/ = ; % = 此时B[]= A[]=) (B[]= A[]=) (B[]= A[]=) (B[]= A[]=) (B[]= A[]=) (到这儿循环结束因为在编号为的那一行出现了当前B[]=而不是这时候begin= end=循环节的长度是) |