這個 C 函式 mystery 是一個遞迴函式,其功能是打印一個正整數 n 的二進位表示。
這是它是如何工作的:
函式首先檢查 n 是否不等於 0。這是遞迴的終止條件。如果 n 為 0,則函式不做任何操作並返回。
如果 n 不是 0,函式遞迴調用自身,參數為 n 除以 2 的結果(也就是說,n 向右移一位,或者說是 n 的二進位表示去掉最後一位)。
然後,函式使用 putchar 函式打印出 n 除以 2 的餘數加上字符 '0'(也就是說,打印出 n 的二進位表示的最後一位)。
通過這種方式,mystery 函式從最高有效位到最低有效位打印出 n 的二進位表示。遞迴的順序確保了二進位數被正確地從高位到低位打印出來。
舉例來說,如果 mystery 被調用為 mystery(10),輸出將會是 1010,因為 10 的二進位表示是 1010。