LUOGU P1017 [NOIP2000 提高组] 进制转换
LUOGU P1017:
前置芝士
(商+1)除数+(余数-除数)=商除数+除数+余数-除数=商*除数+余数=被除数
C++11 $\small(-std=c++11)$
$-19%-2=-1$,$-19/-2=9$,而 $9*-2+(-1)=-19$
所以只需要将模数转换为整数这道题就解了
#include<bits/stdc++.h>
using namespace std;
void zhuan(int n,int r) {
if(n==0) return ;
int m=n%r;
if(m<0) m-=r,n+=r;
if(m>=10) m='A'+m-10;
else m+='0';
zhuan(n/r,r);
printf("%c",m);
return ;
}
int read(){
int x;
scanf("%d",&x);
return x;
}
int main() {
int n=read(),r=read();
string ans="";
printf("%d=",n);
zhuan(n,r);
printf("(base%d)",r);
return 0;
}