请教,关于输入
查看原帖
请教,关于输入
890321
mooktian楼主2023/2/18 15:58

已经AC了,这里的n进制的数不知道有多少位,所以我用了getchar(),修修改改了好几次,然后洛谷这里行结尾有'\r''\n',所以加了两个getchar(),但总感觉代码很别扭,AC代码贴在下面。 请教下,这个输入这里怎么写。

#include <bits/stdc++.h>
using namespace std;
#define f(i,a,b) for(int i=a;i<=b;i++)
#define g(i,a,b) for(int i=a;i>=b;i--)
int a[41];
int b[41];
int n,m,i,j,sum;
char ch;
int main(){
	//输入
	scanf("%d",&n);
	getchar();
	getchar();
	ch=getchar();
	i=40;
	while(ch!=' '&&ch!='\n'&&ch!='\r') {
		if(ch>='0'&&ch<='9') a[i--]=ch-'0';
		if(ch>='A'&&ch<='F') a[i--]=ch-'A'+10;
		ch=getchar();
	}
	scanf("%d",&m);
	for(i++,j=0;i<=40;i++,j++) {
		if(a[i]) sum+=a[i]*pow(n,j);	 
	}
	i=41;
	while(sum) {
		i--;
		b[i]=sum%m;
		sum/=m;
	}
	f(j,i,40) {
		if(b[j]<=9) cout<<b[j];
		else cout<<char(b[j]+55);
	}
	return 0; 
	
}
2023/2/18 15:58
加载中...