这个题用到了除法原理,利用除法的过程将各个小数位求出来,不过知道这个远远不够……
一言难尽……我把小数求出来了,但是在循环小数的循环体这儿卡住了,实在不知道咋求。好不容易有点思路,被证明是错的思路……
比如:
/*
T94 分数化小数
算法概述:根据除法原理,可以将小数点之后的数一个个求出来存放在字符串中,
然后用字符串的方法检查是否有循环就可以了。
如何判断小数点后的循环?
如果小数点右边达到了1000多位,那么认为是循环的
不过循环如何求???
统计数字出现的次数,出现很多的(取130)那么就认为是循环中的一个数字
*/
#include<stdio.h>
#include<string.h>
#define MAX_SIZE 1000
typedef struct NumTimes {
int num;
int times;
} NumTimes;
void sortByTimes(NumTimes numTimes[], int n);
int main() {
int N = 0, D = 0;
int inte = 0;// 结果的整数部分
int rem = 0;// 余数
char res[MAX_SIZE] = "";
char inteChar[MAX_SIZE] = "";// 结果的整数部分
char loop[10] = "";// 循环体
NumTimes numTimes[10];// 统计数字0~9出现的次数
int i = 0, j = 0;
int flag[10] = {
0};
while (1) {