#define _CRT_SECURE_NO_WARNINGS //Visual Studio等死

#include<cstdio>

using namespace std;

int n, r, l, ans[32] = {};	//ans存转进制后的每一位,l存数字长度 

int main()
{
	scanf("%d %d", &n, &r);	//输入n,r 
	printf("%d=", n);		//表头 
	while (n)
	{
		if (n % r >= 0)
			ans[l++] = n % r;		//正数直接转 
		else
		{
			ans[l++] = n % r - r;	//负数特判,存与 r 相反的数 
			n += r;					//加回去 
		}
		n /= r;
	}
	for (int i = l - 1; i >= 0; --i)//倒序输出 
		if (ans[i] < 10)
			printf("%d", ans[i]);	//小于 10 输出数字 
		else
			putchar(ans[i] - 10 + 'A');//大于等于 10 输出字母 
	printf("(base%d)", r);	//表尾 
	return 0;
}

2 comments

  • @ 2025-1-19 0:01:12

    感谢舒服了😭基数就要用radix👊🏻抵制ppp

    • @ 2025-1-6 13:14:12

      溜溜溜强如npr,真·可读性满满

      • 1