栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

(c++ oi)高精度计算板子

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(c++ oi)高精度计算板子

你敲三小时代码,能得到优雅的高精度板子

你等三年,却换不来低精度的爱情

下面是高精度计算板子,除了高精除不太优雅,都很优雅

#include//高精度步骤 1.输入(字符串) 2.字符串转整型数组 3.模拟计算 4.输出(前导0注意) 
#include//常见问题 1.转换时忘-'0' 奇怪数字 2.计算时用= 而不是+= 无进位 3.删前导0把最后一个删了 一个测试点过不了 
#include
#include
#include
#include
using namespace std;
int shu1[10001],shu2[10001],ans[100001],tmp[10001];
string s1,s2;
void zizhuan(string s,int a[])2(1).字符串转整型数组 
{
	for(int i=0;i<=s.length()-1;i++)
	{
		a[s.length()-i]=s[i]-'0';//容易忘记-'0' 表现为输出奇怪数字!!!!!! 
	}
	return; 
}
void shuzhuan(long long a,int b[])//2(2).数字转整型数组 
{
	int ji=0;
	while(a>0)
	{
		ji++;
		b[ji]=a%10;
		a/=10;
	}
	return;
}
int compare(int a[],int b[],int len)
{
	for(int i=len;i>=1;i--)
	{
		if(a[i]>b[i])return 1;
		if(a[i]b      若可能a=1;i--)
	{
		b[i+k]=a[i];
	}
	return;
}
void chu(int a[],int b[],int c[],int len1,int len2)//除法模拟运算 余数为剩下的被除数 
{
	int d[1001]; 
	memset(d,0,sizeof(d));
	for(int i=len1-len2;i>=0;i--)
	{
		memset(tmp,0,sizeof(tmp));
		yi(b,tmp,i,len2);

		while(compare(a,tmp,len1)!=-1)//a大于(等于!!)当前除数 不能写成 ==1!!!! 
		{
			jian(a,tmp,d,len1);
			for(int j=1;j<=len1;j++)a[j]=d[j];
			memset(d,0,sizeof(d));//实际追求效率 可专门写自减
			
			c[i+1]++;//是i+1 
		} 
		
	}
	return;
}
int main()
{
	
	cin>>s1>>s2;//1.输入(字符串)
	zizhuan(s1,shu1);
	zizhuan(s2,shu2);//2(1)字符串转数组
	
	//long long a,b;
	//cin>>a>>b; 
	//shuzhuan(a,shu1);//2(2)变量转数组(为了接下来更大运算) 
	
	//for(int i=s1.length();i>=1;i--)cout<1)lans--;//删前导0 且不能删去最后一个0!!!!!!!! 
	for(int i=lans;i>=1;i--)cout<1)len--; 
	for(int i=len;i>=1;i--)cout< 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1019015.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号