我很新鮮,以C++和我面臨的下一個問題的困難:用C++,得到F(N + 1)= 3/4 * F(N)4結果
寫一個程序要求用戶輸入一個數字:n 然後計算f(n)。
注意:
f(0)=3 and f(n+1) = 3/4 * f(n) + 4 ?
例如:
f(1)= 6.25
f(2)= 8.69
f(3)= 10.52
f(4)= 11.89
f(5)= 12.92
========================= ===========================
那麼,我該如何解決這個問題呢?
感謝所有..
我試試這個代碼依賴於先生paxdiablo答案:
#include<iostream>
using namespace std;
int main()
{
double x=0.0;
cout<<" enter an integer N:";
cin>> x;
double f1(double x)
{
if x==0.0
return 3;
return 3/4 * f1 (x-1) + 4;
}
return 0;
}
但程序一直沒有運行!
============================================== ==
正確的解決辦法是:
#include<iostream>
#include<iomanip> //To enable "setprecision" tool
using namespace std;
double f(int x){
if (x==0)
{return 3;}
return (3.0/4.0) * f(x-1) + 4.0; //we add zeros to get "double" results
}
int main()
{
int n=0;
cout<<" Please, enter an integer :";
cin>> n;
cout<<fixed<<setprecision(2)<<f(n); //"setprecision" used to get only two digits after the point
return 0;
}
非常感謝大家給了我的手,特別感謝到paxdiablo先生。
你卡在哪一點?向我們展示你到目前爲止所嘗試的以及你得到的錯誤。 – Oguk 2014-11-21 00:21:44
獲得「double f1(double x)」部分。並使用圓括號得到正確的答案 – mhs 2014-11-21 01:17:15
你輸出'輸入一個整數',但你把它讀成一個double。此外,你的函數應該把一個整數作爲它的輸入參數(它也使比較爲零安全,儘管它應該在特殊情況下用於雙精度)。否則,除了一些語法錯誤(查閱書中的if和函數),您幾乎可以解決問題。只輸出結果。 – Oguk 2014-11-21 01:47:39