問題描述
模擬程式型計算器,依次輸入指令,可能包含的指令有
數字:『num x』,x為乙個只包含大寫字母和數字的字串,表示乙個當前進製的數
運算指令:『add』,『sub』,『mul』,『div』,『mod』,分別表示加減乘,除法取商,除法取餘
進製轉換指令:『change k』,將當前進製轉換為k進製(2≤k≤36)
輸出指令:『equal』,以當前進製輸出結果
重置指令:『clear』,清除當前數字
指令按照以下規則給出:
運算過程中中間變數均為非負整數,且小於2^63。
以大寫的』a』-'z』表示10-35
輸入格式
第1行:1個n,表示指令數量
第2…n+1行:每行給出一條指令。指令序列一定以』clear』作為開始,並且滿足指令規則
輸出格式
依次給出每一次』equal』得到的結果
樣例輸入
7clear
num 1024
change 2
addnum 100000
change 8
equal
樣例輸出
題目就是模擬計算器,但是有一些小坑。如:
所有中間數必須設定為long long型別,否則會爆;
注意進製轉換時傳入數字為0;
注意變數的初始化與重置;
給long long型別賦值時,需要在數字後面加ll。
附:ac**
#include
using
namespace std;
char alp[37]
=;typedef
long
long ll;
ll k_2_dec
(string s,
int k)
}return dec_num;
}string dec_2_k
(ll num,
int k)
while
(num !=0)
;for
(int i = w-
1; i >=
0; i --
)return s;
}int
main()
flag =0;
}else
if(ins ==
"add"
) flag =1;
else
if(ins ==
"sub"
) flag =2;
else
if(ins ==
"mul"
) flag =3;
else
if(ins ==
"div"
) flag =4;
else
if(ins ==
"mod"
) flag =5;
else
if(ins ==
"change"
) cin >> k;
else
if(ins ==
"equal"
) cout <<
dec_2_k
(number, k)
<< endl;
else
if(ins ==
"clear")}
return0;
}
藍橋杯 歷屆試題 小計算器
小計算器 模擬程式型計算器,依次輸入指令,可能包含的指令有 1.數字 num x x為乙個只包含大寫字母和數字的字串,表示乙個當前進製的數 2.運算指令 add sub mul div mod 分別表示加減乘,除法取商,除法取餘 3.進製轉換指令 change k 將當前進製轉換為k進製 2 k 3...
藍橋杯 歷屆試題 小計算器
問題描述 模擬程式型計算器,依次輸入指令,可能包含的指令有 1.數字 num x x為乙個只包含大寫字母和數字的字串,表示乙個當前進製的數 2.運算指令 add sub mul div mod 分別表示加減乘,除法取商,除法取餘 3.進製轉換指令 change k 將當前進製轉換為k進製 2 k 3...
藍橋杯 歷屆試題小計算器(模擬)
問題描述 模擬程式型計算器,依次輸入指令,可能包含的指令有 1.數字 num x x為乙個只包含大寫字母和數字的字串,表示乙個當前進製的數 2.運算指令 add sub mul div mod 分別表示加減乘,除法取商,除法取餘 3.進製轉換指令 change k 將當前進製轉換為k進製 2 k 3...