2015-08-27 129 views
1

我想計算此公式的結果:C++ double類型和整數類型

1/1! + 1/2! + 1/3! + 1/4! + ... + 1/10!

這裏是我的代碼:

#include <iostream> 
#include <cstdlib> 
using namespace std; 

double func(int); 

int main(void) { 
int a; 
double sum=0; 
do{ 
    cout << "input a num: " ; 
    cin >> a; 

}while (a<=0); 

for (int i=1; i<a+1; i++) { 
    sum = sum + (double)(1/func(i)); 
} 
    cout << sum << endl; 
    return 0; 
} 

double func(int num) 
{ 
    if(num>0) 
     return num*func(num-1); 
    else 
     return 1; 
} 

我很好奇,爲什麼我必須使用雙類型FUNC回傳。 如果我用整型傳遞,這樣

int func(int num) 

總和的結果將是不正確的。

+0

@UmNyobe謝謝!我知道了。 –

回答

1

這將工作。逸岸,你不需要類型轉換(double)(1/func(i))

更改行,如下所示:

sum = sum + (1.0/func(i));