【00NOIP提高组】进制转换

【00NOIP提高组】进制转换,第1张

【00NOIP提高组】进制转换
  • 可可爱爱的传送门
  • 本来十进制转其他进制还是比较简单的
  • 就是负进制奇奇怪怪
  • 最重要的是在余数为负数的时候——
    原来的余数减去进制 (即加上进制的绝对值)
    商+1
  • 具体是这样的: if(a[i]<0)n++,a[i]-=r;
  • 另一点是注意当余数>10时的输出需要用 (char)(a[j]-10+'A')记得加“(char)”,否则会是一堆数字
  • 当然用数组也是可以的 ,但是我懒
  • 其余见代码
代码
#include
using namespace std;
int n,r,a[101],i;
int main()
{
    while(cin>>n>>r){
    	i=0;
    	do{
    	    a[++i]=n%r;
    	    n/=r;
    	    if(a[i]<0){//进位
    	        n++,a[i]-=r;
    	    }
    	}while(n!=0);
    	for(int j=i;j>=1;j--){
    		if(a[j]<10)cout<

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4653079.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-06
下一篇2022-11-06

发表评论

登录后才能评论

评论列表(0条)

    保存