不知道哪里错了,输入10 9999999 16,输出999999
  • 板块P1143 进制转换
  • 楼主xyzyx
  • 当前回复2
  • 已保存回复2
  • 发布时间2020/12/7 21:35
  • 上次更新2023/11/5 06:26:33
查看原帖
不知道哪里错了,输入10 9999999 16,输出999999
335241
xyzyx楼主2020/12/7 21:35
#include<bits/stdc++.h>
using namespace std;
int zs(char b[],int jz,int n)
{
	int i,sum=0;
	for(i=n-1;i>=0;i--)
	{
		if('A'<=b[i]&&b[i]<='F')
			sum+=((b[i]-'A'+10)*pow(jz,n-1-i));
		else
			sum+=((b[i]-'0')*pow(jz,n-1-i));			

	}
	return sum;
}
void sz(int d,int jz2)
{
	char a[10005];int i=0;
	while(1)
	{		
		if(d/jz2==0)
		{
			if(d%jz2>=10)
			{
				a[i]=d%jz2-10+65;				
			}
			
			else
				a[i]=d%jz2+48;				
			break;		
		}
		else
		{
			if(d%jz2>=10)
			{
				a[i]=d%jz2-10+65;				
			}
		
			else
				a[i]=d%jz2+48;				
			d/=jz2;
			i++;	
		}
	}
	for(int j=i;j>=0;j--)
		cout << a[i];
}
int main()
{
	int j1,j2,sum,len;char a[10005];
	cin >> j1;
	scanf("%s",a);
	len=strlen(a);
	cin >> j2;
	if(j1==j2)
	{
		printf("%s",a);	
		return 0;	
	}
	sum=zs(a,j1,len);
	sz(sum,j2);
	return 0;
}
2020/12/7 21:35
加载中...