为什么会60分 求解 代码见下
查看原帖
为什么会60分 求解 代码见下
232541
田所浩二de114514楼主2020/8/15 10:35
#include<bits/stdc++.h>
using namespace std;
char c1[11000],c2[11000],tmp[11000],tmp1;
int a[11000],b[11000],c[11000];
int main() {
	scanf("%s %s",c1,c2);

	int lenc1=strlen(c1);
	int lenc2=strlen(c2);
	bool flag2=false;
	if(lenc1<lenc2) {
//		cout<<"交换\n";
		if(flag2==false) {
//			printf("-");
			flag2=true;
			for(int i=0; i<lenc1; i++) {
				tmp[i]=c1[i];
			}
			for(int i=0; i<lenc2; i++) {
				c1[i]=c2[i];
			}
			for(int i=0; i<lenc1; i++) {
				c2[i]=tmp[i];
			}
			tmp1=lenc1;
			lenc1=lenc2;
			lenc2=tmp1;
			
		}


	}
	
//	for(int i=0;i<lenc1;i++){
//		printf("%c ",c1[i]);
//	}cout<<endl;
//		for(int i=0;i<lenc2;i++){
//		printf("%c ",c2[i]);
//	}cout<<endl;

	if(lenc1==lenc2) {

		for(int i=0; i<lenc1; i++) {
			if(c1[i]>c2[i]) {
				break;
			} else if(c1[i]<c2[i]) {

//				cout<<"交换\n";
				if(flag2==false) {
//					cout<<"-";
					flag2=true;
					for(int i=0; i<lenc1; i++) {
						tmp[i]=c1[i];
					}
					for(int i=0; i<lenc2; i++) {
						c1[i]=c2[i];
					}
					for(int i=0; i<lenc1; i++) {
						c2[i]=tmp[i];
					}
						tmp1=lenc1;
			lenc1=lenc2;
			lenc2=tmp1;
					break;
				}


			}
		}
	}

//	for(int i=0;i<lenc1;i++){
//		printf("%c ",c1[i]);
//	}cout<<endl;
//		for(int i=0;i<lenc2;i++){
//		printf("%c ",c2[i]);
//	}cout<<endl;

	int j=0;
	for(int i=lenc1-1; i>=0; i--) {
		a[j]=c1[i]-'0';
		j++;
	}
	j=0;
	for(int i=lenc2-1; i>=0; i--) {
		b[j]=c2[i]-'0';
		j++;
	}
	for(int i=0; i<max(lenc1,lenc2); i++) {
		c[i]=a[i]-b[i];
	}
	for(int i=0; i<max(lenc1,lenc2); i++) {
		while(c[i]<0) {
			c[i]+=10;
			c[i+1]--;
		}
	}
	bool flag=false;
	if(flag2==true){
		printf("-");
	}

	for(int i=max(lenc1,lenc2); i>=0; i--) {
		if(flag==false&&c[i]==0) {

		} else {
			printf("%d",abs(c[i]));
			flag=true;
		}
	}

}
2020/8/15 10:35
加载中...