⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.cpp

📁 高精度计算的教案和程序 完全原创
💻 CPP
字号:
#include <stdio.h>
#include <string.h>
#define MAXLEN 10000
#define BASE 10
#define max(x,y) x>y?x:y
char x[MAXLEN],y[MAXLEN];
char ans[MAXLEN];
int lenX,lenY;
int lenAns;
FILE *in,*out;

inline void input(){
	char a[MAXLEN],b[MAXLEN];
	in=fopen("1.in","r");
	fscanf(in,"%s",a);
	fscanf(in,"%s",b);
	fclose(in);
	lenX=strlen(a);
	lenY=strlen(b);
	for(int i=0;i<lenX;i++)
		x[i]=a[lenX-i-1]-'0';
	for(int i=0;i<lenY;i++)
		y[i]=b[lenY-i-1]-'0';
}
inline void print(){
	out=fopen("1.out","w");
	for(int i=lenAns-1;i>=0;i--)
		fputc(ans[i]+'0',out);
	fputc('\n',out);
	fclose(out);
}

void add(){
	lenAns=max(lenX,lenY);
	for(int i=0;i<lenAns;i++){
		ans[i]+=x[i]+y[i];
		ans[i+1]=ans[i]/BASE;
		ans[i]%=BASE;
	}
	ans[lenAns]?lenAns++:0;
}
void min(){									//保证x>y
	lenAns=lenX;
	for(int i=0;i<lenAns;i++)
		ans[i]=(x[i]<y[i]?x[i+1]--,BASE:0)+x[i]-y[i];
	for(;ans[lenAns]==0&&ans[lenAns-1]==0;lenAns--);
}
void mul(){
	lenAns=lenX+lenY;
	for(int i=0;i<lenX;i++)
		for(int j=0;j<lenY;j++){
			ans[i+j]+=x[i]*y[j];
			ans[i+j+1]+=ans[i+j]/BASE;
			ans[i+j]%=BASE;
		}
	ans[lenAns-1]?:lenAns--;
}

int main(){
	input();
 	mul();
	//add();
	//min();
	print();

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -