回覆列表
  • 1 # 水晶棧說科技

    #include <cstdlib>

    int main()

    {

    std::system("emacs –Q --batch --execute \"(progn "calc-comb)"

    "(message (math-format-bignum-decimal"

    "(cdr (cadr (math-factorial-iter 1 20 (lambda ())))))))\"");

    return 0;

    }

  • 2 # 愛坤小仙女湖

    #include <iostream>

    #include <future>

    long long foo(int a, int b, std::future<long long> last = std::async(std::integral_constant<long long, 1>())) {

    return a == b ? a * last.get() : foo((a + b) / 2 + 1, b, std::async(foo, a, (a + b) / 2, std::move(last)));

    }

    int main() {

    std::cout << foo(1, 20) << std::endl;

    }

  • 3 # 農民小羅羅

    既然提到優雅了,那麼我就給出一點思路吧。

    應該從資料結構的角度去想這個問題。

    ps:看到這個問題,我有點想哭。這個問題正是我大學時候課堂上被老師現場要求程式設計的問題。當時我用的最簡單for迴圈,完了一直結果為0另我當場出醜,後來下課了才發現初始化的問題。一氣之下我寫了三種方法,發郵件給老師了。

  • 4 # 帶娃學程式設計

    #include <iostream>

    using namespace std;

    long long mul(int i,int j);

    int main()

    {

    cout<<mul(1,20)<<endl;

    return 0;

    }

    long long mul(int i,int j){

    if(j==i)

    return i;

    else

    return j*mul(i,j-1);

    }

  • 5 # 碼中尋樂

    題主的問題從數學角度來看,就是一個求階乘的小演算法,直接使用遞迴方式來實現,簡潔又易於理解。 函式實現如下:

    上圖的函式實現了階乘n!,就是n*(n-1)*(n-2)*...*1,函式呼叫如下:

    輸出結果為v4:24 v5:120 v6:720 v7:5040 v10:3628800 v20:2432902008176640000

  • 中秋節和大豐收的關聯?
  • 有沒有感覺現在的生活越來越喪?