30/09/2018, 17:59

Tìm lỗi cho bài toán F= x^n/n! với n là số thực

int main()
{
    int x,i,t;
    float f,n;
    printf("Xin moi nhap gia tri n=");
    scanf("%f",&n);
    printf("Xin moi nhap gia tri x=");
    scanf("%d",&x);
    t=1;
    f=0;
    for(i=1;i<=n;i++)
    {
        t=t/i;
        f=f+(pow(x,i))*(t);
    }
    printf("Gia tri cua f=%f",f);
    getch();
}

Các anh cho em hỏi em sai đoạn nào mà sao kết quả f em thấy toàn bằng x ạ? @@

Pham Anh viết 20:05 ngày 30/09/2018

xxxxxxxxx.Mình nhầm đề.sorry

Pham Anh viết 20:11 ngày 30/09/2018
#include <stdio.h>
#include <conio.h>
#include <math.h>

int TinhGiaiThua(int &n)
{
    int i;
    int gt = 1;
    for(i = 1 ; i <= n ; i++)
    {
        gt *= i;
    }
    return gt;
}
int main()
{
int x,i,t;
float f,n;
printf("Xin moi nhap gia tri n=");
scanf("%f",&n);
printf("Xin moi nhap gia tri x=");
scanf("%d",&x);
f = 0;
for(i = 1 ; i <= n ; i++)
{
    t = TinhGiaiThua(i);
    f += pow(x,i) / t;
}
printf("Gia tri cua f = %f",f);
getch();
}

Đây bạn,bạn làm sai thuật toán,ở đây mình có thêm 1 hàm tính giai thừa cho dễ tính

Thành Thái Nguyễn viết 20:04 ngày 30/09/2018

Cách của bạn cũng hay nhưng theo mình nghĩ nên để tính giai thử ở bên trong lun, mõi lần tới một phân số mới chỉ cần mẫu số là giai thử nhân thêm giá trị tiếp theo, chương trình chạy sẽ nhanh hơn.

.vn viết 20:08 ngày 30/09/2018

bạn thiếu thôi ,gán thêm biến M=M*i nữa nhé

Bài liên quan
0