洛谷P1017 進制轉換 數論 負進制數
阿新 • • 發佈:2018-11-16
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 進制轉換 數論 負進制數