计算1-1/2+1/3-1/4+1/5......+1/n(分别用for和while语句来做)
- 提问者网友:饥饿走向夜
- 2021-05-06 05:10
- 五星知识达人网友:轻雾山林
- 2021-05-06 05:50
for语句:
#include <stdio.h>
int main()
{
int i,n,flag=1; //flag作为符号位
float sum=0.0;
scanf("%d",&n); //输入n
for(i=1;i<=n;i++)
{
sum+=1.0/i*flag;
flag*=-1; //将符号位取反.
}
printf("sum=%.2f\n",sum);
return 0;
}
while语句:
#include <stdio.h>
int main()
{
int i=1,n,flag=1; //flag作为符号位
float sum=0.0;
scanf("%d",&n); //输入n
while(i<=n)
{
sum+=1.0/i++*flag;
flag*=-1;
}
printf("sum=%.2f\n",sum);
return 0;
}
- 1楼网友:话散在刀尖上
- 2021-05-06 08:20
double SUM(int n)
{
int i,k=1;
double a=0;
for(i=1;i<=n;++i)
{
a+=k*1.0/i;
k=-k;
}
return a;
}
double SUM(int n)
{
int i=1,k=1;
double a=0;
while(i<n+1)
{
a+=k*1.0/i;
k=-k;
++i;
}
return a;
}
c的函数代码
- 2楼网友:洎扰庸人
- 2021-05-06 06:54
public double js(int n)
{
double res=1;
bool flag=true;
for(int i=2;i<=n;i++)
{
if(flag)
{
flag=false;
res -= 1/i+1;
}
else
{
flag=true;
res += 1/i-1;
}
}
return res;
}
public double js(int n)
{
double res=1;
bool flag=true;
int i=0;
while(i<=n)
{
if(flag)
{
flag=false;
res -= 1/i+1;
}
else
{
flag=true;
res += 1/i-1;
}
i++;
}
return res;
}