求1+2+…+n,要求不能使用乘除法、for、while、if、else...

題目:

求1+2+…+n,學習

要求不能使用乘除法、for、while、if、else、switch、case等關鍵字以及條件判斷語句(A?B:C)。spa


網上看到一種宏定義的寫法不是很理解,還有一種遞歸的寫法,很巧妙,學習了。
code

代碼以下:

#include <stdio.h>
#include <stdlib.h>

int sum(int n)
{
    int tmp = 0;
    (n)&&(tmp = sum(n-1));//當n=0時,再也不執行(tmp = sum(n-1))
    return n+tmp;
}

int main(void)
{
    printf("1+2+...+100 = %d\n",sum(100));
    return 0;
}


關於那段宏定義,我再看看,稍後貼出遞歸

相關文章
相關標籤/搜索