發問時間: 電腦與網際網路程式設計 · 10 年前

微積分題目用程式語言寫

微積分的寒假作業

聽同學說是老師出的題目開學後要交

題目是:

算階層1!+2!+.....+n!>10的7次方 n=?

記得用程式語言寫

誰知道要怎麼寫呀?

我連程式語言都不知道是甚麼!= =

希望有人可以幫我解答~感謝!!

已更新項目:

我也不知道要用哪一種呀= =

老師又沒說...

不過同學好像都用C++吧!!

2 個已更新項目:

EdisonX 大大

寫你打的答案就好了嘛?

因為我難不懂所以不知道是不是正確的...

還有所以答案n 到底是多少?

可以幫忙解答一下嘛?

謝謝~!

3 個解答

評分
  • 10 年前
    最佳解答

    題意應是 1!+2!+...+n! > 10^7, 求 n 之最小值

    那就用 c++ 吧

    #include <iostream>

    using namespace std;

    #define TARGET 10000000

    // x!

    unsigned fact(unsigned x){

    unsigned ans=1;

    if(x==0 || x==1) return 1;

    else return x*fact(x-1);

    }int main()

    {

    unsigned sum=0;

    unsigned n=1;

    while(true){

    sum = sum+fact(n);

    if(sum>TARGET) break;

    n++;

    } cout << "1!+2!+...+" << n << "!=" << sum << ">" << TARGET << endl;

    cin.get();

    return 0;

    }

    2011-02-17 16:24:41 補充:

    執行結果

    1!+2!+...+11!=43954713 > 10000000

    答案是 11

    程式碼上樣那段就行了

    參考資料: me
  • 10 年前

    稍微歸納一下,

    便可享用「前人種樹,後人乘涼」的好處。

    fact函式,在本例是贅事一椿,免之可矣!

    2011-02-18 14:17:12 補充:

    #include <iostream>

    using namespace std;

    #define TARGET 10000000

    int main()

    {

    unsigned sum = 0, n = 0, fact = 1;

    while ( (sum += (fact *= ++n)) <= TARGET );

    cout << "Q: 1! + 2! + ... + n! > 10^7, 求 n 之最小值。\n";

    cout << "A: n = " << n << " ( sum = " << sum << " )\n";

    system("pause");

    return 0;

    }

    /*執行結果:

    Q: 1! + 2! + ... + n! > 10^7, 求 n 之最小值。

    A: n = 11 ( sum = 43954713 )

    */

  • 佛祖曉得要用哪一種程式語言

還有問題?馬上發問,尋求解答。