Tôi đang tự học C++ và gặp phải vấn đề khi làm bài tập như sau, nhờ mọi người trong Dạy Nhau Học giúp đở dùm.
Đề bài: S = 1!/(x+k) + 2!/(x^2-k^2) + n!/(x^n + (-1^(n+1)*k^n)
Với n, x, k được nhập vào từ bàn phím.
Nếu nhập n=1 thì chương trình chạy đúng. Nhưng nếu tăng n = 2 hoặc n=3… thì hàm lại trả về kết quả S = inf
. Tôi đã xem kỹ và thử tới thử lui nhưng không được, nhờ mọi người gở rối dùm.
Code như sau:
#include <iostream>
#include <math.h>
using namespace std;
float Tong(int n,int x,int k)
{
float S;
int a=-1;
int b=1;
for(int i=1;i<=n;i++)
{
a *= -1;
b *=i;
S += b/(pow(x,i)+a*pow(k,i));
}
return S;
}
int main()
{
int n,x,k;
cout<<"Nhap n: ";
cin>>n;
cout<<"Nhap x: ";
cin>>x;
cout<<"Nhap k: ";
cin>>k;
cout<<"\nS = "<<Tong(n,x,k);
return 0;
}
Cảm ơn mọi người!