1. 程式人生 > >洛谷P1017 進制轉換 數論 負進制數

洛谷P1017 進制轉換 數論 負進制數

har jpg alt 數據 ++ pan 除法 .com void

這一題看了半天解題也沒看懂當k小於0的轉換過程,就好像我不懂短除法的原理一樣...

那就暫且作為模板記下來吧...

附上短除法的過程(數據結構課棧那一節講過)

技術分享圖片

#include<iostream>
using namespace std;
int n,r,top=-1;
char a[20]={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J};
char b[20];
void solve()
{
    int i,k,j;
    cin>>n>>r;
    j
=n; while(n) { k=n%r; n=n/r; if(k<0){ k=k-r; n++; } b[++top]=a[k]; } cout<<j<<"="; for(i=top;i>=0;i--) cout<<b[i]; cout<<"(base"<<r<<")"<<endl; } int main() { solve(); }

洛谷P1017 進制轉換 數論 負進制數