藍橋杯 歷屆試題 小計算器

2021-10-25 22:01:31 字數 1694 閱讀 2445

問題描述

模擬程式型計算器,依次輸入指令,可能包含的指令有

數字:『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...