求前n项表达式的和,表达式为1−32+53−94+175−336+......+2i−1+1i (i=2,...n)
输入格式:
输入一个1-50之内的整数n
输出格式:
依次输出每项的表达式的值;
结束后,输出表达式的和;
若n不在1-50之间,无输出。
输入样例1:
1
输出样例1:
1=1
输入样例2:
2
输出样例2:
1-2/3=0.333333
输入样例3:
3
输出样例3:
1-2/3+3/5=0.933333
答案:
#include<iostream>
using namespace std;
int main()
{
int n,x=1;
double sum=1;
cin>>n;
if(n>=1&&n<=50)
{
cout<<1;
for(int i=2;i<=n;i++)
{
x=1;
if(i%2==0)cout<<"-";
else cout<<"+";
cout<<i<<"/";
for(int j=1;j<=i-1;j++)
{
x=x*2;
}
x=x+1;
cout<<x;
}
cout<<"=";
for(int i=2;i<=n;i++)
{
x=1;
for(int j=1;j<=i-1;j++)
{
x=x*2;
}
x=x+1;
if(i%2==0)
sum=sum-i*1.0/x;
else
sum=sum+i*1.0/x;
}
cout<<sum;
}
return 0;
}