社区讨论

被嘲笑了

灌水区参与者 2已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lzv6fmve
此快照首次捕获于
2024/08/15 19:08
2 年前
此快照最后确认于
2024/08/15 20:49
2 年前
查看原帖
被同学嘲讽了,这代码太长了(bushi),快来帮帮我
CPP
#include<bits/stdc++.h>
using namespace std;
int main(){
	char s1[11000],s2[11000];
	int  lena=0,lenb=0,lenc=0,a[11000]={},b[11000]={},c[11000]={},x=0,y=0;
	cin>>s1>>s2;
	lena=strlen(s1);
	lenb=strlen(s2);	
	if(strlen(s1)<strlen(s2)){
		for (int i=0;i<lena;i++){
			b[lena-i]=s1[i]-48;
		}
		for (int i=0;i<lenb;i++){
			a[lenb-i]=s2[i]-48;
		}
		y=1;
	}
	
	if(strlen(s1)>strlen(s2)){
		for (int i=0;i<lena;i++){
			a[lena-i]=s1[i]-48;
		}
		for (int i=0;i<lenb;i++){
			b[lenb-i]=s2[i]-48;
		}
		
	}
	if(strlen(s1)==strlen(s2)){
		for (int i=0;i<lena;i++){
			if(s1[i]-48>=s2[i]-48){
				a[11000]={};
				b[11000]={};
				for (int i=0;i<lena;i++){
					a[lena-i]=s1[i]-48;
				}
				for (int i=0;i<lenb;i++){
					b[lenb-i]=s2[i]-48;
				}
				break;
			}
			if(s1[i]-48<s2[i]-48){
				a[11000]={};
				b[11000]={};
				for (int i=0;i<lena;i++){
					b[lena-i]=s1[i]-48;
				}
				for (int i=0;i<lenb;i++){
					a[lenb-i]=s2[i]-48;
				}	
				y=1;
				break;			
			}
		}
	}
	if(lena>=lenb) lenc=lena;
	else lenc=lenb;
	for(int i=1;i<=lenc;i++){
		if(a[i]<b[i]){
			a[i]+=10;
			a[i+1]--;
		}
		c[i]=a[i]-b[i];
	}
	while(lenc>1&&c[lenc]==0)lenc--; 
	if(y==1){
		cout<<"-";
	}
	for(int i=lenc;i>=1;i--){
		cout<<c[i];
	}
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...