2 条题解

  • 0
    @ 2025-3-26 8:26:08
    #include<iostream>
    using namespace std;
    int main(){
    	int m, n, xs[21];               //在xs[1...20]中存储20个小数位
    	scanf("%d%d", &m, &n);
    	printf("%d/%d=%d.", m, n, m/n); //输出整数部分和小数点
    	for(int i=1; i<=20; i++){       //循环20次计算20个小数位
    		m%=n;
    		m*=10;
    		xs[i]=m/n;
    	}
    	int i=20;
    	while(xs[i]==0 && i>1) i--;     //计算有效的小数位
    	for(int j=1; j<=i; j++)         //输出i个有效小数位
    		printf("%d", xs[j]);
    	return 0;
    }
    
    
    • 0
      @ 2023-4-23 13:39:45
      #include <bits/stdc++.h>
      #define ll long long
      using namespace std;
      
      int main()
      {
      	int r,x[21],i=0;
      	long long a,b;
      	cin>>a>>b;
      	printf("%lld/%lld=%d.",a,b,a/b);
      	r=a%b;
      	memset(x,0,sizeof(x));
      	if(r==0) cout<<'0';
      	while(r!=0&&i<=19)
      	{
      		r*=10;//商乘以10,模拟竖式除法
      		x[i]=r/b;
      		i++;
      		r%=b;
      	}
      	for(i=19;i>=0;i--){
      		if(x[i]!=0)
      		{
      		break;//防止循环小数或者无限不循环小数的20位或者后面几位是0
      		}
      	}
      	for(int j=0;j<=i;j++){
      		cout<<x[j];
      	}
      	return 0;
      }
      
      • 1

      信息

      ID
      1197
      时间
      1000ms
      内存
      128MiB
      难度
      6
      标签
      递交数
      54
      已通过
      19
      上传者