求助,怎么套模板
  • 板块灌水区
  • 楼主拾然z
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/7/10 21:19
  • 上次更新2023/10/27 21:10:41
查看原帖
求助,怎么套模板
312063
拾然z楼主2022/7/10 21:19

高精加法和乘法模板都会写但是阶乘之和不知道怎么套只能用python水过

加法

#include<bits/stdc++.h> 
using namespace std;
int main()
{
	char a[310],b[310];
	int x[310]={0},y[310]={0},z[310]={0};
	cin>>a>>b;
	int lena=strlen(a),lenb=strlen(b);
	int len=max(lena,lenb);
	for(int i=1;i<=lena;i++)
	{
		x[i]=a[lena-i]-'0';
	}
	for(int i=1;i<=lenb;i++)
	{
		y[i]=b[lenb-i]-'0';
	}
	for(int i=1;i<=len;i++)
	{
		z[i]+=x[i]+y[i];
		z[i+1]+=z[i]/10;
		z[i]=z[i]%10;
	}
	len++;
	while(len>1&&z[len]==0)len--;
	for(int i=len;i>=1;i--)
	{
		cout<<z[i];
	}
	return 0;
}

乘法

#include<bits/stdc++.h> 
using namespace std;
int main()
{
	char a[310],b[310];
	cin>>a>>b;
	int x[1010]={0},y[1010]={0},z[1010]={0};
	int lena=strlen(a),lenb=strlen(b);
	for(int i=1;i<=lena;i++)
	{
		x[i]=a[lena-i]-'0';
	}
	for(int i=1;i<=lenb;i++)
	{
		y[i]=b[lenb-i]-'0';
	}
	for(int i=1;i<=lena;i++)
	{
		for(int j=1;j<=lenb;j++)
		{
			z[i+j-1]+=x[i]*y[j];
			z[i+j]+=z[i+j]/10;
			z[i+j-1]%=10;
		}
	}
	int len=lena+lenb+1;
	while(len>1&&z[len]==0)len--;
	for(int i=len;i>=1;i--)
	{
		cout<<z[i];
	}
	return 0;
}
2022/7/10 21:19
加载中...