staprans 2022-04-14 10:44 采纳率: 100%
浏览 1384
已结题

函数fun是根据输入n,求下面分母为n以内(包含n)的素数构成的数列的和

函数fun是根据输入n,求下面分母为n以内(包含n)的素数构成的数列的和 :s=1/2-2/3+3/5-4/7+5/11-...,输入10,输出:-0.138095。
要求在fun函数的注释语句之间编写程序,其它部分不得增删语句。

#include<stdio.h>
#include<stdlib.h>
double fun(int n)
{

}
int main()
{
int n;
double s,x;
FILE *in,*out;
printf("输入n:");
scanf("%d",&n);
s=fun(n);
printf("%lf\n",s);

in=fopen("in2019-2-1-2.dat","r");
out=fopen("out2019-2-1-2.dat","w");
while(!feof(in))
{
    fscanf(in,"%d",&n);
    fprintf(out,"%lf\n",fun(n));
}
system("pause");
return 0;
  • 写回答

1条回答 默认 最新

  • czy1219 2022-04-14 17:36
    关注

    具体代码和运行结果,如有帮助请采纳!谢谢!

    img

    #include<vector>
    double function1(int n)
    {
        vector<int>vec;
        for(int i=2;i<=n;++i)
        {
            int count = 0;
            for(int j=2;j<i;++j)
            {
                if(i%j==0)
                {
                    ++count;
                    break;
                }
            }
            if(count==0)
                vec.push_back(i);
        }
        int len = vec.size();
        double sum = 0.0;
        for(int i=0;i<len;++i)
        {
            if(i%2==0)
                sum += ((i+1)*1.0/vec[i]);
            else
                sum -= ((i+1)*1.0/vec[i]);
        }
        return sum;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月26日
  • 已采纳回答 4月18日
  • 创建了问题 4月14日