思路:
1. 分四類討論
2. 得到加和減計算方法
3. 前導0刪除與符號刪除
#include#include #include using namespace std; // 輸入4進制數格式判斷 bool judge(string a) { int i = 0; if(a[i] == '-' || a[i] == '+') i++; if(a[i] == '0' && a.size()-1>i) return false; for(;i lenb ? lena : lenb; string res = ""; int i; for(i=0;i lenb) res += a[i]; else res += b[i]; } int c = 0; for(i=0;i '3'){ res[i] -= 4; c = 1; }else c = 0; } if(c == 1) res += '1'; reverse(res); return res; } // 刪除前導0 void deletefrontzero(string &res) { string temp; bool s = true; int len = res.size(); for(int i=0;i =0 && a[i]==b[i]) i--; if(a[i]x1; cout<<"數2:"; cin>>x2; }while(!judge(x1)||!judge(x2)); cout<
運行結果如下圖所示: