文章

11

粉丝

33

获赞

0

访问

2.2k

头像
进制转换3 题解:
P1422 清华大学/厦门大学机试题
发布于2024年3月22日 19:55
阅读数 301

#include <stdio.h>  
#include <string.h> 
int main()
{
	int m, n;
	char x[1000];
	char a[1000]; int j = 0;
	scanf("%d %d", &m, &n);
	scanf("%s", &x);
	long long int ans = 0;//用于存储十进制中间结果。
	//101 5
	for (int i = 0; i < strlen(x); i++)
	{
		ans *= m;
		if (x[i] >= '0' && x[i] <= '9')ans += x[i] - '0';
		if (x[i] >= 'a' && x[i] <= 'z') ans += x[i] - 'a' + 10;//输入要求大写 可忽略
		if (x[i] >= 'A' && x[i] <= 'Z') ans += x[i] - 'A' + 10; 
	}
	//printf("%d\n", ans);
	while (ans > 0)//十进制转换成m进制。
	{    
		int w = (ans % n);
		if (w< 10)a[j++] = w + '0';
		else a[j++] = w + 'a' - 10; //输出要求小写
		ans /= n;
	}

	for (int k = j - 1; k >= 0; k--)
	{
		printf("%c", a[k]);
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发