问题 B: 深入浅出学算法018-求A/B高精度值

p.s.个人收录用

题目描述

计算A/B的精确值,设A,B是以一般整数输入,计算结果精确小数后20位

(若不足20位,末尾不用补0) 。

输入

输入2个普通的整数A和B

输出

输出A/B的值,保留20位小数,如果不足20位,末尾不用补0,格式见样例

样例输入 Copy
【样例1】
4 3
【样例2】
6 5
样例输出 Copy
【样例1】
4/3=1.33333333333333333333
【样例2】
6/5=1.2
提示

输出结果如果小数点后只有一个0,需要输出X.0

代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <string.h>

//求A/B高精度值

int main()
{
	int a, b;
	scanf("%d%d", &a, &b);
	int s[200];
	int k = a / b;
	int d, e, f;
	d = a % b;
	for (int i = 0; i < 20; i++)
	{
		f = d * 10 % b;
		e = d * 10 / b;
		s[i] = e;
		d = f;
	}
	int i;
	for (i = 199; i >= 0; i--)
	{
		if (s[i])
			break;
	}
	printf("%d/%d=%d.", a, b, k);
	if (i == -1)
		printf("0\n");
	for (int j = 0; j <= i; j++)
	{
		printf("%d", s[j]);
	}
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值