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