洛谷普及场(高精度算法)

洛谷 - 试炼场(全部题目备份) 新手村 任何一个伟大的目标,都有一个微不足道的开始。 洛谷的第一个任务 勇敢的迈出第一步,了解下语言和洛谷。跟着书本和老师走,不会难的。 P1000 P1001 P1421 P1425 顺序与分支 计算机的智能性开始得以体现,因为计算机能够根据不同的条件选择了。 P1422 P1085 P1089 P1909 循环!循环!循环! 计算机最不怕的就是重复。你让它做10000次同样的事它也不怕啦,但是让他做1亿亿次的话…… P1008 P1035 P1423 P1424 P1980 数组 跟数组有关 阅读详情
  • P1601 A+B Problem(高精)
#include <cstdio>
#include <cstring>
using namespace std ; 
const int N = 550 ;
int a[N] , b[N] , c[N] ; 
char astr[N] , bstr[N] ; 
int main(){
	scanf ("%s",astr) ;
	scanf ("%s",bstr) ; 
	int alen = strlen(astr) ; 
	int blen = strlen(bstr) ; 
	int clen = alen > blen ? alen : blen ;  	
	for (int i = 0 ; i < alen ; ++i)
		a[i] = astr[alen-i-1] - '0' ;  
	for (int i = 0 ; i < blen ; ++ i)
		b[i] = bstr[blen-i-1] - '0' ;  
	for (int i = 0 ; i < clen ; ++ i){
		c[i] += a[i] + b[i] ;
		if(c[i] >= 10)	{
			c[i+1] += c[i]/10 ; 
			c[i] %= 10 ; 
		}
	}
	while(c[clen] > 0)	clen ++ ; 	
	for (int i = clen-1 ; i >= 0 ; -- i){
		printf ("%d",c[i]) ; 
	}
	printf ("\n") ; 
	return 0 ;  
}
  • P2142 高精度减法
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <iostream>
using namespace std ; 
const int N = 10100 ;
int a[N] , b[N] , c[N] ; 
string astr , bstr ; 
int main(){
	cin >> astr ; 
	cin >> bstr ;    
	int alen = astr.length() ; 
	int blen = bstr.length() ; 
	if (blen > alen || (blen == alen && bstr > astr)){
		printf ("-") ;
		swap(alen,blen) ;
		swap(astr,bstr) ; 
	}
	int clen = alen > blen ? alen : blen ;  
	for (int i = 0 ; i < alen ; ++i)
		a[i] = astr[alen-i-1] - '0' ;  
	for (int i = 0 ; i < blen ; ++ i)
		b[i] = bstr[blen-i-1] - '0' ;  
	for (int i = 0 ; i < clen ; ++ i){
		c[i] += a[i] - b[i] ;
		if(c[i] < 0)	{
			c[i] += 10 ; 
			c[i+1] -- ; 
		}
	}
	while(c[clen-1] == 0 && clen > 1)	clen -- ; 	
	for (int i = clen-1 ; i >= 0 ; -- i){
		printf ("%d",c[i]) ; 
	}
	printf ("\n") ; 
	return 0 ;  
}
  • P1303 A*B Problem
    这道应该是A的比较久的吧,要注意处理负数的情况和0的情况(变量比较多经常打错)
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <iostream>
using namespace std ; 
const int N = 2500 ;
int a[N] , b[N] , c[2*N] ; 
string astr , bstr ; 
int main(){
	cin >> astr ; 
	cin >> bstr ; 
	char x = astr[0] , y = bstr[0] ; 
	int alen = astr.length() , blen = bstr.length() ;  
	int clen = alen + blen - 1 ;
	if (x == '0' || y == '0'){
		printf ("0\n") ; 
		return 0 ; 
	} 
	int xnum = 0 , ynum = 0 ; 
	if (x == '-' && y != '-'){
		printf ("-") ;
		xnum = 1 ; 
		-- clen ;  
	}
	if (x != '-' && y == '-'){
		printf ("-") ;
		ynum = 1 ;
		-- clen ;  
	}
	if (x == '-' && y == '-'){
		xnum = ynum = 1 ; 
		clen -= 2 ; 
	}
	
	for (int i = 0 ; i < alen-xnum ; ++i)
		a[i] = astr[alen-i-1] - '0' ;
	for (int i = 0 ; i < blen-ynum ; ++ i)
		b[i] = bstr[blen-i-1] - '0' ;

	for (int i = 0 ; i < alen-xnum ; ++ i){
		for (int j = 0 ; j < blen-ynum ; ++j){
			c[i+j] += a[i] * b[j] ; 
			if (c[i+j] >= 10){
			    c[i+j+1] += c[i+j]/10 ; 
				c[i+j] %= 10 ; 
			}	
		}
	}
	while(c[clen] > 0)	++clen  ; 
	for (int i = clen-1 ; i >= 0 ; -- i){
		printf ("%d",c[i]) ; 
	}
	printf ("\n") ; 
	return 0 ;  
}
  • p1604 B进制星球

其实就是普通的高精度乘法,就是在位的时候把除于10改成除于进制即可,注意这个是2~36进制的,输入输出的时候要处理大于等于10的字符。

	#include <cstdio>
	#include <iostream>
	#include <string>
	#include <cstring>
	using namespace std ; 
	const int N = 2010 ; 
	string astr , bstr ; 
	int a[N] , b[N] , c[N] ; 
	int main(){
		int n ; 
		scanf ("%d",&n) ;
		getchar() ; 
		cin >> astr ; 
		cin >> bstr ; 
		int alen = astr.length() ; 
		int blen = bstr.length() ; 
		int clen = alen > blen ? alen : blen ;
		for (int i = 0 ; i < alen ; ++ i){
			if (astr[alen-i-1] >= '0' && astr[alen-i-1] <= '9'){
				a[i] = astr[alen-i-1] - '0' ; 
			}
			else {
				a[i] = (astr[alen-i-1]-'A') + 10 ; 
			}
		}
		
		for (int i = 0 ; i < blen ; ++i){
			if (bstr[blen-i-1] >= '0' && bstr[blen-i-1] <= '9'){
				b[i] = bstr[blen-i-1] - '0' ; 
			}
			else{
				b[i] = bstr[blen-i-1] - 'A' + 10 ; 
			}
		}
		for (int i = 0 ; i < clen ; ++ i ){
			c[i] += a[i] + b[i] ; 
			if (c[i] >= n){
				c[i+1] += c[i]/n ; 
				c[i] %= n ; 
			}
		}
		while(c[clen] > 0)	++clen ; 
		for (int i = clen-1 ; i >= 0 ; -- i){
			if (c[i] < 10)
				printf ("%d",c[i]) ;
			else{
				printf ("%c",c[i]-10 + 'A') ; 
			}
		}
		printf ("\n") ; 
		return 0 ; 
	}
算法之高精度(含实例与详解)C语言 高精度详解有实例C语言版 阅读详情

相关推荐

C++:第十五讲高精度算法

在C++中当你用int、long long,甚至是unsigned long long 都无法处理的超级巨大数字,你会感到无比痛苦甚至到绝望,那么我们此时就只有一种方法了——高精度算法。我们可以利用程序设计的方法去实现这样的高精度计算。介绍常用的几种高精度计算的方法。本文主要实现的是自然数范围内做运算的加法、减法、乘法、除法四种基本高精度运算。高精度(High Precision)是一种在计算机编程中用于表示和操作大数的技术。在C++中,可以使用高精度思想来处理大数,例如质数、因数分解等。

喷火龙廖的博客 2045

蒟蒻的两年程序竞赛经验

2021 年 4 月 28 日,蓝桥杯成绩出来了,c++ 组 b 组省一。不过大学时间也所剩无几,所以想写一篇经验贴,供同专业的学弟学妹们参考。 我首次基础编程是大一下学期的 VB 课 (很难想象 2019 年还在学 VB,不过低一级的学弟学妹们就学 Python 了)。VB 课只学习了最基本的编程,包括顺序结构、循环结构、分支结构以及自己写函数。 随后在大一暑假我自学了 C 语言,仅限于用 C 语言实验顺序结构、循环结构、分支结构。期间硬啃谭浩强老师的那本红书,参考过浙江大学翁恺老师的 mooc。毫无疑问

zihangjia的博客 3960

从现在开始记录洛谷cpp刷题源码(2)——算法(模拟与高精度)

2025开始准备蓝桥杯,很多刷题笔记直接写在了代码的注释里,但是一个一个文件保存在电脑里太麻烦了,所以将所有我自己已经编译通过的代码放在这个文档里,也当是对自己学习成果的一个记录。我的代码就是按照我自己的思路写的,非常简单也方便我自己理解。如果能够帮助到和我一样没有什么天赋的朋友,当然是更加荣幸之至。这是算法章节第一个——模拟与高精度。主页有上一个章节题目的思路和源码。

Zhenzhen1_的博客 1511

一个新手刷洛谷网的经历

刷洛谷网也有一段时间了,但是一直进展不大,当我刷完新手前三关的时候,循环那关有道三连击的题目正是我在算法书上遇到的那道题,当时看着很烦,因为实在没有任何头绪,不过幸运的是洛谷网只要求每关作对三道题就可以通过,现在依旧被那道三连击的题目所烦扰,但好的是我也进入了数组这一关。 不过再此也求若有大佬看到这三连击的题目,望求的一助,实在是有点烦了 ...

weixin_43720716的博客 6607

洛谷专题训练 ——【算法1-1】模拟与高精度

洛谷题单【算法1-1】模拟与高精度 ACM-ICPC在线模板 题单链接: 【算法1-1】模拟与高精度 下面的这一坨都是洛谷题单上的东东 题单简介 恭喜大家完成了第一部分语言入门,相信大家已经可以使用 C++ 写出一些简单程序了。 各位读者有听说过“建模”一词吗?所谓“建模”,就是把事物进行抽象,根据实际问题来建立对应的数学模型。“抽象”并不意味着晦涩难懂;相反,它提供了大量的便利。计算机很难直接去...

繁凡さん的博客 1109

洛谷官方题单——【算法1-1】模拟与高精度

洛谷官方题单——【算法1-1】模拟与高精度

weixin_69583420的博客 1483

洛谷无敌(算法网站)

随着时间的推移,洛谷逐渐扩展了题目类型和竞赛范围,涵盖了ACM竞赛、IOI竞赛等多个级别的编程竞赛题目,成为国内外程序员训练和竞赛备战的重要场所之一。总体而言,洛谷网通过其丰富的题目库、强大的评测系统、多样化的竞赛活动和活跃的社区,为广大的编程爱好者和专业程序员提供了一个全面的学习和竞赛平台,成为中国编程教育和技能提升的重要支持平台之一。洛谷网(Luogu.com.cn)是中国领先的在线编程和算法竞赛平台,提供丰富的编程题库和竞赛资源,吸引了大量程序员、学生和编程爱好者的关注和参与。

一个不懂编程的编程大佬,当一个人面对疾风,走上前去当一个逆行者,才是卫国黑客(AI终将代替人类) 805

服务器卡死排查实战:从现象分类到根因定位的完整手册

服务器卡死是运维中最令人头疼的故障之一,从游戏圈吐槽的“土豆服务器”到生产环境中的Linux系统无响应、rsync复制挂起,本质都是系统或进程失去正常响应能力。其原理通常涉及CPU、内存、磁盘IO或网络资源耗尽,以及内核和驱动异常。掌握系统化的排查方法,能够帮助工程师快速定位根因、缩短故障时间,避免盲目重启。本文从资源、层级、场景等多维度分类,结合top、dmesg、strace等工具,梳理一套从现象确认、指标收集、日志分析到进程定位的实战排查流程,并覆盖常见高频场景与预防治理建议。无论你是运维新手还是老手

weixin_33851177的博客 377

洛谷做题指南,入门首选最详细的写题指南,适合洛谷新用户

本篇文章写于2023年10月21日;若洛谷此后有更新变动,可以私聊我,本篇文章将会从零开始教你如何使用洛谷快速高效的做题。

weixin_73842023的博客 2万+

四路独立可控供电USB 2.0智能集线器设计

USB集线器是连接外设的基础接口设备,其供电管理能力直接影响系统可靠性与远程运维效率。传统HUB仅提供固定VBUS输出,缺乏端口级电源控制机制,难以实现软复位、故障隔离与功耗优化。本方案基于USB 2.0协议透明转发原理,通过硬件级电子负载开关(如MT9700)与独立MCU(ESP32-C3)协同,构建具备四路独立限流(680mA)、纳秒级通断响应、WiFi/MQTT远程管控能力的智能供电架构。技术价值体现在协议无侵入、控制域与数据域物理隔离、默认安全上电策略等工程实践要点,广泛适用于工业远程调试、实验室设

weixin_36289742的博客 194

CRC校验查表法详解

CRC校验的查表法理解算法原理基础计算查表法原理及计算查表法中的表CRC校验中数据逆序CRC校验中的其它参数 算法原理 CRC(Cyclic Redundance Check)循环冗余校验,是基于某个多项式计算出一组校验码,用于核对数据传输过程中是否被更改或传输错误 基础计算 假设需要检验的数据 g :10100111,这串二进制码可以表示为代数多项式g(x) = x^7 + x^5 + x^2 + x +1, 而作为除数的多项式 h(x) 可以自由选择或者按照国际标准选择,一般h(x)的阶数如果是m

boom的博客 1万+

洛谷平台简述

洛谷(Luogu)是中国知名的在线编程题库和算法竞赛训练平台,每一个合格的编程猿都应该知道和熟知!

MCTZS的博客 4792

VS Code 配置 LaTeX 写作环境完全指南

本文详细介绍了如何在 VS Code 中配置 LaTeX 写作环境,涵盖了从安装必备组件到高级功能的全面指南。首先,用户需要安装 LaTeX 发行版(如 TeX Live 或 MiKTeX)和 VS Code 插件(如 LaTeX Workshop)。接着,通过修改 settings.json 和 keybindings.json 文件,用户可以自定义编译、查看快捷键等基础配置。文章还提供了高效写作技巧,如使用代码片段和多文件项目管理,并介绍了高级功能如反向同步、公式预览和参考文献管理。此外,针对常见问题(

weixin_70043030的博客 1984

洛谷[NOIP1998 普及组] 阶乘之和 (C语言,高精度加法,高精度×低精度,高精度阶乘)

高精度加法,高精度×低精度,高精度阶乘

qq_65265649的博客 3011

芯片设计流程中的def文件

在实际的DEF文件中,每个部分都包含了与实际设计相关的详细信息,这个模板只展示了每个部分的基本结构。在实际应用中,DEF文件通常由EDA(电子设计自动化)工具在完成布局(Placement)和布线(Routing)步骤后自动生成,在集成电路设计中,DEF(Design Exchange Format)文件的模板具体内容会依设计的复杂性和特定需求而变化。简而言之,LEF文件提供了单元的物理特性和规则,而DEF文件使用这些规则来确定单元。)文件描述了特定设计中所有物理元素的精确放置和连线信息。

qq_36045093的博客 4863

LLM大模型基础知识【一】

大语言模型(LLM):是指在自然语言处理(Natural Language Processing,NLP)领域中的一类大模型,通常用于处理文本数据和理解自然语言。这类大模型的主要特点是它们在大规模语料库上进行了训练,以学习自然语言的各种语法、语义和语境规则。例如:GPT系列(OpenAI)、Bard(Google)、文心一言(百度)。视觉大模型:是指在计算机视觉(Computer Vision,CV)领域中使用的大模型,通常用于图像处理和分析。

lin_xi_xi的博客 2882

洛谷试炼场------题目

新手村 任何一个伟大的目标,都有一个微不足道的开始。 洛谷的第一个任务 勇敢的迈出第一步,了解下语言和洛谷。跟着书本和老师走,不会难的。 P1000 P1001 P1421 P1425 顺序与分支 计算机的智能性开始得以体现,因为计算机能够根据不同的条件选择了。 P1422 P1085 P1089 P1909 循环!循环!循环! 计算机最不怕的就是重复。你让它做10000...

mrcrack的博客 2万+

Android11.0(R) MTK 平台开机logo动态替换(by logo.bin方式)

实现的效果 客户提供一张格式为 bmp 的开机logo,在 linux 环境下执行制作 logo.bin 脚本文件, apk 拷贝 logo.bin 文件替换系统原有的bin,然后重启 logo 自动更新。 原理分析 MTK 平台的充电图片和开机logo都是打包到 logo.bin 中的 对应的资源路径在源码 vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo 系统一般预制了很多分辨率文件夹,实际通过 BOOT_LOGO 来确定打包那一个

cczhengv 4589

【题解】【洛谷P1015】【高精度】—— [NOIP1999 普及组] 回文数

蓝胖子编程教育,是一家面向青少年的编程教育平台。平台为全国青少年提供最专业的编程教育服务,包括提供最新最详细的编程相关资讯、最专业的竞赛指导、最合理的课程规划等。本平台利用趣味性和互动性强的教学方式,旨在激发孩子们对编程的兴趣,培养他们的逻辑思维能力和创造力,让孩子们在轻松愉快的氛围中掌握编程知识,为未来科技人才的培养奠定坚实基础。这里有个小技巧:我们不需要将字符存储起来,而是将其对应的数字存储起来,这样方便编写代码。若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。

Pantheraonca的博客 997

【K210+STM32项目】基于K210与STM32协同工作的智能垃圾分类系统设计与实现(更新3.0版本)(完整工程资料源码)

STM32F407STM32F407_2(含有app功能)

嵌入式技术开发 2497

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

洛谷试炼场——题目单

洛谷试炼场已关闭,大家看看这个吧 新手村 任何一个伟大的目标,都有一个微不足道的开始。 洛谷的第一个任务 勇敢的迈出第一步,了解下语言和洛谷。跟着书本和老师走,不会难的。 P1000 P1001 P1421 P1425 顺序与分支 计算机的智能性开始得以体现,因为计算机能够根据不同的条件选择了。 P1422 P1085 P1089 P1909 循环!循环!循环! 计算机最不怕的就是重复。你让它做10000次同样的事它也不怕啦,但是让他做1亿亿次的话…… P1008 P1035 P1423 P1424 P19

Tonvia的博客 2166

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【c++】高精度算法(洛谷刷题2024)乒乓球详解

本题运用到了高精度算法,具体体现在记录乒乓赛输赢时有无数场,我们把每一场都记录在数组中,而不是简单的一两场提示:以下是本篇文章正文内容,下面案例可供参考以上就是今天要讲的内容,本文介绍了洛谷中高精度算法的第一题,希望对您有所帮助~http://【洛谷题单 - 算法 - 高精度】https://www.bilibili.com/video/BV1Ym4y1s7BD?

2301_79982543的博客 1374

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

高精度算法详解(加减乘除+高精度案例)

高精度通常指的是在计算机中对超过基本数据类型表示范围的大整数或者小数进行精确计算的能力。在计算机中,通常使用固定长度的数据类型(比如int、long、float、double等)来表示数字,这些数据类型的表示范围是有限的,就无法被准确表示和计算,这就需要使用高精度计算。精度计算经常用于需要对非常大或者非常精确的数字进行计算的场景,比如在密码学中的大素数运算、金融领域的精确计算、科学计算中的精确浮点数运算等。为了实现高精度计算,通常需要设计特定的数据结构和算法来表示和计算这些超出固定数据类型范围的数字.

2301_80708596的博客 7908

【题解】【洛谷P1045】【高精度】—— [NOIP2003 普及组] 麦森数

接下来就要用到高精度了。还是老样子,使用我在高精度算法解析和高精度赛场用模板分装的bigint结构体。不过有两个地方要稍微改一下。

Pantheraonca的博客 1771

洛谷 P1009:[NOIP1998 普及组 T2] 阶乘之和 ← 高精度算法

利用“高精度算法”思想计算“大数阶乘”,需要明确几个关键点: (1)数组 a 的大小(maxn)需要足够大,以存储阶乘结果的所有位数。 (2)数组 a 应该在函数外部被初始化为全零,并且第一个元素应该设置为 1,表示阶乘的初始值。 (3)在计算过程中,数组 a 的每一位都会被更新,以反映当前的阶乘值。 (4)最后,需要逆序输出数组 a 中的非零元素,以得到正确的阶乘结果。

hnjzsyjyj的专栏 805

高精度算法(加法)

高精度算法作为常用算法之一,是必学的一门算法,在生活实际或参加一些竞赛都会有它的身影,本文只讲解了高精度加法,以后会陆续将高精度其他运算的解析发布出来,希望这些对您有用。

LAW2956的博客 2759
上一篇: 洛谷p1004方格取数
下一篇: 洛谷普及场 (多维动态规划)
coder370
博客等级 码龄8年 4粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值