2016-11-16 109 views
-1

我想製作一個4位計算器。 輸入是2個數字和一個符號。計算器是4位的,如果數字大於16,可能會出現溢出。四位計算器溢出

example

我已經寫有+和部件 - ,但我沒有一個想法如何繼續。

如果有人幫助我,我將非常感激。

string[] asignb = Console.ReadLine().Split(' '); 
int a = int.Parse(asignb[0]); 
string sign = asignb[1]; 
int b = int.Parse(asignb[2]); 

if (a > 16) { 
    a -= 16; 
} 

if (b > 16) { 
    b -= 16; 
} 

if (sign == "+") { 
    int addition = 0; 
    addition = a + b; 

    if(addition > 16) { 
     addition -= 16; 
    } 
    Console.WriteLine(addition); 

} else if(sign == "-") { 
    int subtraction = 0; 
    subtraction = a - b; 

    if (subtraction < 0) { 
     subtraction += 16; 
    } 
    Console.WriteLine(subtraction); 

} 
+1

會更明顯。如果你可以上傳你到目前爲止所做的 –

+0

你可以使用模正整數。你可以做你的算術,可以說'2 + 23'。據推測,從你所說的,代碼目前評估這一優良,並返回'25' - 你可以得到你正在尋找像這樣'25%16' –

+0

@saad蘇瑞我上傳它的16位整數。謝謝你提醒我。 –

回答

0

那麼一個效率低下但易於實施的方法是重複加或減。即(2 * 5)=(2 + 2 + 2 + 2 + 2)。

整數除法只是在達到零之前可以減去的次數(溢出可能是個問題)。

如果你想要更有效或徹底的答案,試着查找二進制乘法/除法。