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

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

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

c[i] = (d * 10 + a[i]) / 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;
}
相关推荐
SuperByteMaster3 小时前
keil 工程 .gitignore配置文件
c语言
FQNmxDG4S3 小时前
Java多线程编程:Thread与Runnable的并发控制
java·开发语言
超级码力6664 小时前
【Latex文件架构】Latex文件架构模板
算法·数学建模·信息可视化
穿条秋裤到处跑4 小时前
每日一道leetcode(2026.04.29):二维网格图中探测环
算法·leetcode·职场和发展
前端老石人4 小时前
HTML 字符引用完全指南
开发语言·前端·html
matlab_xiaowang4 小时前
Redux 入门:JavaScript 可预测状态管理库
开发语言·javascript·其他·ecmascript
Merlos_wind4 小时前
HashMap详解
算法·哈希算法·散列表
虹科网络安全4 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje5 小时前
Java语法进阶
java·开发语言·jvm
汉克老师5 小时前
GESP2025年3月认证C++五级( 第三部分编程题(1、平均分配))
c++·算法·贪心算法·排序·gesp5级·gesp五级