lap trinh c

Câu a) Cách 1: Vòng lặp

int n = 0; //So n nhap vao

double s = 0; //Tong can tinh

cin>>n;

for(int i = 1; i<=n;i++)

{

//Tinh giai thua cua i

double m = 1;

for(int j = 1; j<=i; j++)

{

m=m*j;

}

//Cong don vao s

s = s + 1.0/m;

cout<<s<<"

";

}

cout<<s;

system("PAUSE");

return EXIT_SUCCESS;

Cách 2: Đệ quy (Chỉ đối phó thôi nhé, không tối ưu)

double GiaiThua(int n)

{

if (n == 1) return 1;

return GiaiThua(n-1)*n;

}

double Tinhtong(int n)

{

if(n ==1) return 1;

return Tinhtong(n-1) + (1.0/GiaiThua(n));

}

int main(int argc, char *argv[])

{

int n = 0; //So n nhap vao

cin>>n;

cout<<Tinhtong(n);

system("PAUSE");

return EXIT_SUCCESS;

}

Câu b:

Cách 1: vòng lặp

int n = 0; //So n nhap vao

cin>>n;

double s = 1; //Tich can tinh

for(int i =1; i<=n;i++)

{

s= s*(2*i-1);

}

cout<<s;

system("PAUSE");

return EXIT_SUCCESS;

Cách 2: Đệ quy

double Tich(int n)

{

if(n==1) return 1;

return Tich(n-1)*(2*n-1);

}

int main(int argc, char *argv[])

{

int n = 0; //So n nhap vao

cin>>n;

cout<< Tich(n);

system("PAUSE");

return EXIT_SUCCESS;

}

Câu c

Cách 1: Vòng lặp

int n = 0; //So n nhap vao

cin>>n;

double s = 0; //Tong can tinh

for(int i =1; i<=n;i++)

{

if((i%2)==0)

{

s= s- 1.0*i/(i+1);

}

else

{ s= s+ 1.0*i/(i+1);

}

}

cout<<s;

system("PAUSE");

return EXIT_SUCCESS;

Cách 2: Đệ quy

double Tinhtong(int n)

{

if(n==1) return 1.0*1/2;

if((n%2)==0)

{

return Tinhtong(n-1)-1.0*n/(n+1);

}

else

{

return Tinhtong(n-1)+1.0*n/(n+1);

}

}

int main(int argc, char *argv[])

{

int n = 0; //So n nhap vao

cin>>n;

cout<<Tinhtong(n);

system("PAUSE");

return EXIT_SUCCESS;

}

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: