循环小数

来源:互联网 发布:js input自动换行 编辑:程序博客网 时间:2024/04/28 02:03

    使用数组精确计算M/N(0<M<N<=100)的值。如果M/N是无限循环小数,则计算并输出它的第一循环节,同时要求输出循环节的起止位置(小数位的序号)。

#include "stdio.h"int sum=0;void judge(int p, int q){int *rest=new int[q];rest[0]=p;int count=1;int flag=0;int i,j,m,n;m=p; n=q;for(i=0;i<q;i++){int num=(m*10)%n;if (num==0)return;else{for(j=0;j<count;j++){if (rest[j]==num){flag=1;sum++;printf("%d div %d \t start:%d, end: %d\n",p,q,j+1,count);return;}}if(flag==0)rest[count++]=num;elsereturn;}m=num;}}void main(){for(int m=1;m<100;m++)for(int n=m+1;n<=100;n++)judge(m,n);printf("\n\nthe total number is %d\n",sum);}




0 0