大佬们求解
  • 板块学术版
  • 楼主kian0539
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/11/3 19:15
  • 上次更新2023/11/4 01:30:11
查看原帖
大佬们求解
553372
kian0539楼主2021/11/3 19:15

P1143进制转换
大佬们麻烦看下这道题
测试数据下载了没错
但是online judge就WA
下面是代码(本人太菜所以转了两次)\


#include <bits/stdc++.h>
using namespace std;
int num,cmp,len,i1,t,ans,prcmp,i;
int a[3800];
char c[4000],a2[1000010];
int main() {
	scanf("%d\n",&cmp);
	if(cmp<=10) {
		scanf("%d",&num);
		while(num>0) {
			t=num%10;
			ans+=pow(cmp,i1)*t;
			num/=10;
			i1++;
		}
	}
	if(cmp>10&&cmp<17) {
		gets(c);
		len=strlen(c);
		for(int i=0; i<len; i++) {
			if(c[i]>47&&c[i]<58)a[len-i]=c[i]-'0';
			else if(c[i]>='A'&&c[i]<='Z')a[len-i]=c[i]-55;
		}
		for(int i=1; i<=len; i++) {
			ans+=pow(cmp,i1)*a[i];
			i1++;
		}
	}
	cin>>prcmp;
	if(ans==0) {
		cout<<"0";
		return 0;
	} else {
//		cin>>prcmp;
//	scanf("%d\n",&prcmp);
		while(ans>0) {
			if(ans%prcmp<10)a2[i]=ans%prcmp+'0';
			else a2[i]=ans%prcmp+55;
			ans/=prcmp;
			i++;
		}
		for(i--; i>=0; i--) {
			cout<<a2[i];
		}
	}
	return 0;
}

谢大佬

2021/11/3 19:15
加载中...