合着就我一个写了158行,崩溃了
查看原帖
合着就我一个写了158行,崩溃了
1036708
12345limengqi楼主2023/12/2 16:11
#include <iostream>
#include <cstring>
using namespace std;
int B;
string n, m;

int main () {
	cin >> B >> n >> m;
	int a[n.length()];
	int b[m.length()];
	
				
	for(int i = 0; i < n.length(); i++){
		if(n[i] >= 'A' && n[i] <= 'Z'){
			a[i] = n[i] - 'A' + 10;
			
		}
		else if(n[i] >= '0' && n[i] <= '9'){
			a[i] = n[i] - '0';
		
		}
	} 
	for(int i = 0; i < m.length(); i++){
		if(m[i] >= 'A' && m[i] <= 'Z'){
			b[i] = m[i] - 'A' + 10;
		}
		else if(m[i] >= '0' && m[i] <= '9'){
			b[i] = m[i] - '0';
		}
	}
	int max = 0;
	int min = 0;
	char flag;
	if(n.length() >= m.length()){
		max = n.length();
		min = m.length();
		flag = 'n';
	} 
	else {
		max = m.length();
		min = n.length();
		flag = 'm';
	}
	int c[max + 1];
	c[0] = 0;
	if(flag == 'n'){
		for(int i = max - 1;i >= (max - min); i--){
			c[i + 1] = a[i] + b[min - max + i];
		}
		for(int j = max - min - 1; j >= 0; j--){
			c[j + 1] = a[j];
		}
	}
	else if(flag == 'm'){
		for(int i = max - 1;i >= (max - min); i--){
			c[i + 1] = b[i] + a[min - max + i];
			
		}
		for(int j = max - min - 1; j >= 0; j++){
			c[j + 1] = b[j];
		}
	}
	for(int i = max; i >= 1; i--){
		if(c[i] >= B){
			c[i] = c[i] % B;
			
			c[i - 1]++;
		}
	}
	if(c[0] != 0){
		cout << c[0];
	}
	for(int i = 1; i <= max; i++){
		if(c[i] == 10){
			cout << "A";
		}
		else if(c[i] == 11){
			cout << "B";
		}
		else if(c[i] == 12){
			cout << "C";
		}
		else if(c[i] == 13){
			cout << "D";
		}
		else if(c[i] == 14){
			cout << "E";
		}
		else if(c[i] == 15)
		{
			cout << "F";
		}
		else if(c[i] == 16){
			cout << "G";
		}
		else if(c[i] == 17){
			cout << "H";
		}
		else if(c[i] == 18){
			cout << "I";
		}
		else if(c[i] == 19){
			cout << "J";
		}
		else if(c[i] == 20){
			cout << "K";
		}
		else if(c[i] == 21){
			cout << "L";
		}
		else if(c[i] == 22){
			cout << "M";
		}
		else if(c[i] == 23){
			cout << "N";
		}
		else if(c[i] == 24){
			cout << "O";
		}
		else if(c[i] == 25){
			cout << "P";
		}
		else if(c[i] == 26){
			cout << "Q";
		}
		else if(c[i] == 27){
			cout << "R";
		}
		else if(c[i] == 28){
			cout << "S";
		}
		else if(c[i] == 29){
			cout << "T";
		}
		else if(c[i] == 30){
			cout << "U";
		}
		else if(c[i] == 31){
			cout << "V";
		}
		else if(c[i] == 32){
			cout << "W";
		}
		else if(c[i] == 33){
			cout << "X";
		}
		else if(c[i] == 34){
			cout << "Y";
		}
		else if(c[i] == 35){
			cout << "Z";
		}
		else{
			cout << c[i];
		}
	}
	return 0;
}

以100分

2023/12/2 16:11
加载中...