2_4.cpp

来自「加权数处理 如-1241234 -2 23423523 -6」· C++ 代码 · 共 71 行

CPP
71
字号
#include<iostream>
using namespace std;
	int n,r,len;
	int a[16];
void comput()
{
	int i,p,n1,r1;
	n1=abs(n);
	r1=abs(r);
	len=-1;
	memset(a,0,sizeof(a));
	while(n1>0)
	{
		len++;
		a[len]=n1%r1;
		n1=n1/r1;
	}
	if(n>0)
	{
		p=1;
	}
	else
	{
		p=0;
	}
	while(p<=len)
	{
		if(a[p]>0)
		{
			a[p+1]++;
			i=p+1;
			while(a[i]>=r1)//巧妙的进位处理
			{
				a[i]=a[i]-r1;
				i++;
				a[i]++;
			}
			if(i>len)//对位数进行扩展
			{
				len=i;

			}
				a[p]=r1-a[p];
		}
					p=p+2;
	}
}
void print()
{
	int i;
	for(i=len;i>=0;i--)
	{
		if(a[i]<10)
			cout<<a[i];
		else
			cout<<char(55+a[i]);
	}
	cout<<endl;
}



void main()
{
//	int code;
	while(cin>>n>>r)
	{
		comput();
		print();
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?