在任一程式語言中,不使用「 」 「 」 「 」 「 」運算子如何實現加 減 乘 除?

時間 2021-05-05 23:19:55

1樓:

哈!(define

zero

(lambda (f

)(lambda (x

)x)))(

define

(add-1n)

(lambda (f

)(lambda (x

)(f((

nf)x

)))))

2樓:

對於lisp有了解的人,一定知道邱奇數這個東西,大概原理就是以乙個n階的高階函式表示自然數n,然後再定義一系列加減乘除等操作函式,來實現對這個高階函式的階數修改。

對於js、python這類函式是一等物件的語言來說也可以這麼玩。

3樓:

加法和減法用二進位制的位與「&」和位或「|」可以實現。

比如:要計算12+34. 把12轉換成0B1010, 34轉換成0B100010,然後寫乙個計算二進位制加法的函式,窮舉所有0,1組合相加的處理(4種)。

減法的思路也一樣,換成二進位制然後寫乙個二進位制減法,窮舉出4種組合用if-else實現即可。

乘法可以在加法的基礎上這樣實現:比如要計算12×34,還是把12轉換成0B1010, 34轉換成0B100010,然後分別計算0B10×0B100010和0B1000×0B100010,這兩個又都可以通過將34移位實現。

除法聽起來最複雜,但實現起來很簡單。這是Wiki的鏈結可以參考Division algorithm。思路是一直用被除數減除數,直到被除數小於除數。

如果需要增加精度,把被除數乘以10繼續減除數就可以了。

4樓:枕水

1,限定適用範圍是0~20的整型數

2,計算出0~20以內的所有四則運算結果和組合,寫入乙個集合內3,設計查詢演算法

成功!根據新的問題描述那C語言等偏底層的語言都可以了,四則運算說到底就是移位操作

5樓:RefuseBT

位移、與、或、異或是最基本的。或者說是最基本的運算電路。具體可以搜尋加法器、乘法器。都是這些基本運算與暫存器實現的。參考計算機組成原理。

6樓:Ivony

有很多程式語言中根本就不存在 + - * / 這四種運算子,甚至根本就沒有運算子。

比如說彙編,比如說IL。

真是有夠蛋疼的問題。

7樓:greensea

比較直接的方法

寫個函式,在裡面用位運算乙個位乙個位地算

比較奇怪的方法

寫乙個電路模擬器,然後構建乙個加法器,丟給電路模擬器進行計算更加奇怪的方法

寫乙個神經網路模擬器,用神經元構建出與門、或門、非門以及異或門,然後構建乙個用神經網路組成的加法器,之後就可以進行計算了。

不過模擬神經網路似乎還要計算閾值,所以還是需要用到加減操作,那麼還是需要先構建乙個電路模擬器才行。

8樓:

蛋疼不任意程式語言(那就是說不能都嵌入彙編哦):

1. 我們假設「任一」程式語言都可以exec子程序,並通過管道或者類似的方式獲得程序的返回值

先用任一程式語言,使用這些運算子實現加減乘除,生成(編譯或者不用編譯)乙個可執行程式,然後在你所需要的「任一」程式語言中把需要運算的數作為命令列引數傳遞給剛才生成的程式,獲得其返回結果

2. 我們假設「任一」程式語言都有tcp或http的api

在另外一台機器上搭建乙個伺服器(姑且叫做operator server),接受命令字和引數(如 "3 plus 5"), 伺服器將運算結果返回。這樣速度可能會慢些(數量級可能在幾十萬倍),但也達到了不用+-*/的效果

3. 我們假設lz需要計算的數值是固定的,比如小學生10以內的加減法

建立乙個對映表(可以用陣列或map或dict或hash),比如 int plus[10][10], 裡面儲存了所有可能的結果,比如 plus[8][3] == 11

4. .......

各位覺得主流程式語言中哪個程式語言最容易學習?

Jinhua Luo 最容易 帶有很強烈的主觀色彩,我只發表我的個人偏見,不喜勿噴。我的職業生涯大部分時間用C 在我接觸的語言中,我覺得python最容易學習。科班出身的從業者都學過C,但大家幾乎都明白它的開發效率很低 缺乏豐富的 標準的 普及的各種庫,所以都重造輪子居多 而且維護成本也高 例如記憶...

如何理解程式語言中的 1

正確的時候,返回偏移量,這個數字一般從0.N 1 至於為什麼從0開始,我相信大家都明白 那麼錯誤的時候,返回什麼呢,1,返回結果如果限定為unsigned型別,那麼只能返回大於等於N的數字.一般選擇為N.2,返回結果如果為signed型別,那麼最好是返回負數.一般選擇為 1.總不能大家都隨意選擇乙個...

程式語言中for迴圈和while迴圈的深層區別是什麼?

寒風 看了一下,17年還有人答,我也湊個熱鬧,18年來答下根據我的理解,1 while適合用於狀態變化控制,說高大上點就是while適合做狀態機,而for僅僅是為了迴圈而迴圈 2 另外乙個區別,for迴圈一般都是這麼用的,for int i xx i3 和一有點類似,通常剛學程式的時候會告訴你應盡量...