接受平凡 努力出众 2023-11-01 15:05 采纳率: 0%
浏览 1

关于#c语言#的问题,请各位专家解答!

#循环小数
题目
描述
输入整数a和b(0<=a<=3000,1<=b<=3000),输出a/b的循环小数表示以及循环节长度。

样例输入
5 43

样例输出
5/43 = 0.116279069767441860465

#include<stdio.h>
int main()
{
    int a,b,y1,y2;
    scanf("%d%d",&a,&b);
    int s1[100]={0},s2[100]={0};
    int i=0,t=0,c=1,j,k=0;
    if(a>=b)
     a=a%b;
     y1=a/b;
     y2=a%b;
    while(1)
    {
       
       int flag=0; 

       s1[k++]=y1;
       s2[i++]=y2;
       if(y2==0)
       break;
       for(j=0;j<i-1;j++)
    {
      if(y2==s2[j])
    {
        flag=1;
        break;
    }
    
   }
   if(flag==1)
     break; 
       y2=y2*10;
       y2=y2%b;
       y1=y2/b;
   }
  printf("%d/%d=%d.",a,b,s1[0]);
    for(j=1;j<i;j++)
    {
        printf("%d",s1[j]);
        if(i>50)
        {
        printf("...");
        break;
        }
    }
      
    return 0 ;
    
}

  • 写回答

2条回答 默认 最新

  • 赵4老师 2023-11-01 15:32
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 11月1日