首页 > 其他分享 >高精度计算

高精度计算

时间:2024-07-17 18:21:20浏览次数:10  
标签:205 高精度 int 样例 计算 include strlen

1. 高精度乘法

【题目描述】
输入两个高精度正整数M和N(M和N均小于100位)。求这两个高精度数的积。

【输入】
输入两个高精度正整数M和N。

【输出】
求这两个高精度数的积。

【输入样例】
36
3
【输出样例】
108
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
char m[110],n[110];
int a[1000],b[1000],c[1000];

int main()
{
	cin>>m;
	cin>>n;
	
	int alen=strlen(m);
	int blen=strlen(n);
	int clen=0;
	
	for(int i=0;i<alen;i++)
	{
		a[alen-i]=m[i]-'0';
	}
	for(int i=0;i<blen;i++)
	{
		b[blen-i]=n[i]-'0';
	}
	
	for(int i=1;i<=alen;i++)
	{
		for(int j=1;j<=blen;j++)
		{
			c[i+j-1]+=a[i]*b[j];
			c[i+j]+=c[i+j-1]/10;
			c[i+j-1]%=10;
		}
	}
	
	clen=alen+blen;
	while(c[clen]==0 && clen>1)
	{
		clen--;
	}
	for(int i=clen;i>=1;i--)
	{
		cout<<c[i];
	}
	return 0;
}

2.大整数加法

【题目描述】
求两个不超过200位的非负整数的和。

【输入】
有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。

【输出】
一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。

【输入样例】
22222222222222222222
33333333333333333333
【输出样例】
55555555555555555555
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
char arrstring[205],brrstring[205];

int qW(int a,int b)
{
	if(a>=b)
	{
		return a;
	}
	else
	{
		return b;
	}
}
int main()
{
	int len=0;
	cin>>arrstring;
	cin>>brrstring;
	
	len = qW(strlen(arrstring),strlen(brrstring));
	
	int arrint[205]={0};
	int brrint[205]={0};
	int crrint[205]={0};
	int alen=strlen(arrstring);
	int blen=strlen(brrstring);
	
	for(int i=0;i<alen;i++)
	{
		arrint [alen-i]=arrstring[i]-'0';
	}
	for(int i=0;i<blen;i++)
	{
		brrint [blen-i]=brrstring[i]-'0';
	}
	
	for(int i=1;i<=len;i++)
	{
		crrint[i]+=arrint[i]+brrint[i];
		crrint[i+1]=crrint[i]/10;
		crrint[i]=crrint[i]%10;
	}
	
	while(crrint[len+1]==0 && len>0)
	{
		len--;
	}
	
	for(int i=len+1;i>0;i--)
	{
		cout<<crrint[i];
	}
	return 0;
}

3.大整数减法

【题目描述】
求两个大的正整数相减的差。

【输入】
共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。

【输出】
一行,即所求的差。

【输入样例】
9999999999999999999999999999999999999
9999999999999
【输出样例】
9999999999999999999999990000000000000

标签:205,高精度,int,样例,计算,include,strlen
From: https://www.cnblogs.com/jsc2014/p/18308038

相关文章

  • 【java计算机毕设】网上购书管理系统MySQL servlet JSP项目设计源代码 期末寒暑假作业
    目录1项目功能2项目介绍3项目地址1项目功能【java计算机毕设】网上购书管理系统MySQLservletJSP项目设计源代码期末寒暑假作业小组作业 2项目介绍系统功能:servlet网上购书管理系统包括管理员、用户两种角色。管理员功能包括订单管理(已处理,未处理),顾客管理(添......
  • 计算机毕业设计必看必学75435企业OA系统的设计与实现原创定制程序,java、PHP、python
    SSM企业OA系统摘 要在现今这个信息社会的高速发展的影响下,人们的衣食住行逐渐信息化。当各种当今时代的产物进入我们的生活中,我们要从容面对。在网络硬件与软件的完美结合下,我们的生活、工作将会事倍功半,往往工作中繁琐的事情会花费大量的人力物力,在相关的管理软件的运作......
  • 8天做出决定!计算机方向口碑老刊,稳定检索43年,求稳投它就对了!
    【SciencePub学术】本期,小编给大家介绍的是1本计算机领域的SCI期刊。位于JCR1区中科院2区,隶属于Elsevier出版社旗下,虽然影响因子仅3.7分,但是目前一直呈现稳中有升的趋势,接下来给大家解析一下这本期刊。《JournalofSystemsandSoftware》(简称JSS)是一本著名的学术期刊,主要发......
  • 基于SSM的校园志愿者管理系统小程序+99213(免费领源码)可做计算机毕业设计JAVA、PHP、爬
    小程序+springboot校园志愿者管理系统摘 要随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,校园志愿者管理系统被用户普遍使用,为方便用户能够可以随时进行在线查看校园志愿......
  • 计算机课设——安卓旅行日志
    计算机课设——安卓旅行日志私信获取完整代码本项目用到很多第三方开源库,特此感谢这些大大开源的库,同时也感谢csdn许多博客的启发。......
  • 计算机只认识0和1但是怎么表示图像和影视等等众多应用的?
    原文:计算机只认识0和1但是怎么表示图像和影视等等众多应用的?-知乎(zhihu.com)0和1是两种状态,看上去没法表示诸如图像这样的复杂信息。但是,题主还记不记得以前那个发明国际象棋的数学家给国王出的难题?在第一格放一粒米,第二格放两粒米,以后每一格都要放比前一格多一倍的米,直到......
  • SSM学生资助管理系统-计算机毕业设计源码30825
    目 录摘 要1绪论1.1研究背景1.2研究意义1.3论文结构与章节安排2 学生资助管理系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.3 系统用例分......
  • 归并排序与逆序对个数计算
    归并排序归并排序概念介绍:cpp实现利用归并排序计算逆序对的个数cpp实现归并排序是一种稳定的,时间复杂度nlog(n)的算法,其速度仅次于快排概念介绍:稳定:两个相同的数在排序时相对位置不会改变,例如1554排成1455,两个5的前后位置不发生变化,归并操作:把两个顺序序列合并成一个......
  • Java计算机毕业设计的家政服务平台(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着城市化进程的加速和生活节奏的加快,现代家庭对于家政服务的需求日益增长。传统的家政服务方式往往存在信息不对称、服务质量参差不齐、预约流程繁......
  • Java计算机毕业设计的在线英语学习系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:在全球化的今天,英语作为国际交流的重要工具,其学习需求日益增长。然而,传统英语学习方式受限于时间、地点和教学资源,难以满足广大学习者个性化、灵活化......