C语言:高精度除法(除低精度)

P1480 A/B Problem - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

由图知,被除数的上一位的余数乘10加这位就是这一位结果的除数。

ci = (d * 10 + ai) / b

cpp 复制代码
#include<stdio.h>
#include<string.h>
char x[50005];//存储被除数,转为字符串方便计算长度
long long b;//存储除数,转为字符串方便计算长度
int a[50005];//存储被除数,转为整型方便计算
int c[50005];//存储结果
long long d;//做余数
int main()
{
	scanf("%s", x);
	scanf("%lld", &b);
	size_t la = strlen(x);//计算被除数的长度
	for (int i = 1; i <= la; i++)
	{
		a[i] = x[i-1] - '0';//顺序存储被除数的每一位
	}
	for (int i = 1; i <= la; i++)
	{
		c[i] = (d * 10 + a[i]) / b;//前一个数剩余的余数乘10加当前位的数
		d = (d * 10 + a[i]) % b;//计算余数
	}
	int lc = 1;
	while (c[lc] == 0&&lc<la)
	{
		lc++;//去除前面的0
	}
	for (int i = lc; i <= la; i++)
	{
		printf("%d", c[i]);
	}
	return 0;
}
相关推荐
2501_947575803 小时前
计算机毕业设计之jsp开山车行二手车交易系统
java·开发语言·hadoop·python·信息可视化·django·课程设计
骑士雄师3 小时前
java面试题 4:鉴权
java·开发语言
古城小栈4 小时前
为啥说:训练用BF16,推理用FP16
人工智能·算法·机器学习
KaMeidebaby4 小时前
卡梅德生物技术快报|蛋白 N 端测序在重组贻贝融合蛋白表征中的应用,解决原核表达序列偏移工艺难题
前端·人工智能·物联网·算法·百度
时间的拾荒人4 小时前
C语言字符函数与字符串函数完全指南
c语言·开发语言
Turbo正则5 小时前
群论在AI中的应用概述
人工智能·算法·抽象代数
ysa0510305 小时前
【并查集】判环
c++·笔记·算法
2501_948106915 小时前
计算机毕业设计之基于jsp教科研信息共享系统
java·开发语言·信息可视化·spark·课程设计
持力行5 小时前
C/C++ 中的 char*:它标识数组吗?为什么能用下标访问?
c语言·c++
Jerry5 小时前
KeetCode 44. 开发商购买土地
算法