C语言简单求和练习及答案

求N分之一序列前N项和

本题要求编写程序,计算序列 1 + 1/2 + 1/3 + … 的前N项之和。

输入格式:
输入在一行中给出一个正整数N。

输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。

输入样例:
6
输出样例:
sum = 2.450000

#include <stdio.h>
int main()
{
    int i,n;
    double sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        sum+=1.0/i;
    }
    printf("sum = %.6lf",sum);
    return 0;
}

求奇数分之一序列前N项和

本题要求编写程序,计算序列 1 + 1/3 + 1/5 + … 的前N项之和。

输入格式:
输入在一行中给出一个正整数N。

输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。

输入样例:
23
输出样例:
sum = 2.549541

#include <stdio.h>
int main()
{
    int n,i=1;
    int k=1;
    double sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        sum+=1.0/k;
        k+=2;
    }
    printf("sum = %.6lf",sum);
    return 0;
}

求简单交错序列前N项和

本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + … 的前N项之和。

输入格式:
输入在一行中给出一个正整数N。

输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。

输入样例:
10
输出样例:
sum = 0.819

#include <stdio.h>
int main()
{
    int n,i,k=1,q=4;
    double sum;
    scanf("%d",&n);
    if(n%2==0){
        for(i=1;i<=n/2;i++) {
            sum+=1.0/k;
            k+=6;
        }
        for(i=1;i<=n/2;i++){
            sum-=1.0/q;
            q+=6;
        }
    }
    else{
        for(i=1;i<=n/2+1;i++){
            sum+=1.0/k;
            k+=6;
        }
        for(i=1;i<=n/2;i++){
            sum-=1.0/q;
            q+=6;
        }
    }
    printf("sum = %.3lf",sum);
    return 0;
}

求平方与倒数序列的部分和

本题要求对两个正整数m和n(m≤n)编写程序,计算序列和
m​^2+1/m+(m+1)​ ^2​​ +1/(m+1)+⋯+n​ ^2​​ +1/n。

输入格式:
输入在一行中给出两个正整数m和n(m≤n),其间以空格分开。

输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。

输入样例:
5 10
输出样例:
sum = 355.845635

#include <stdio.h>
#include <math.h>
int main()
{
    int m,n,i;
    double sum;
    scanf("%d %d",&m,&n);
    for(i=m;i<=n;i++){
    sum+=pow(i,2)+1.0/i;
    }
    printf("sum = %.6lf",sum);
    return 0;
}

求交错序列前N项和

本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+… 的前N项之和。

输入格式:
输入在一行中给出一个正整数N。

输出格式:
在一行中输出部分和的值,结果保留三位小数。

输入样例:
5
输出样例:
0.917

#include <stdio.h>
int main()
{
    int n,i;
    double k=1,p=3,u=1,y=2;
    double sum=0,sum1=0,sum2=0;
    scanf("%d",&n);
    if(n%2==0){
        for(i=1;i<=n/2;i++){
            sum1+=(u/k)*1.0;
            u+=2;
            k+=4;
        }
        for(i=1;i<=n/2;i++){
            sum2+=-(y/p)*1.0;
            p+=4;
            y+=2;
        }
        sum=sum1+sum2;
        printf("%.3lf",sum);
    }
    else{
        for(i=1;i<=n/2+1;i++){
            sum1+=(double)(u/k);
            u+=2;
            k+=4;
        }
        for(i=1;i<=n/2;i++){
            sum2+=-(double)(y/p);
            p+=4;
            y+=2;
        }
        sum=sum1+sum2;
        printf("%.3lf",sum);
    }
    return 0;
}

求平方根序列前N项和

本题要求编写程序,计算平方根序列√
​1 +√​2​​ +√​3+⋯的前N项之和。可包含头文件math.h,并调用sqrt函数求平方根。

输入格式:
输入在一行中给出一个正整数N。

输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后两位。题目保证计算结果不超过双精度范围。

输入样例:
10
输出样例:
sum = 22.47

#include <stdio.h>
#include <math.h>
int main()
{
    int n,i;
    double sum;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        sum=sum+sqrt(i);
    }
    printf("sum = %.2lf",sum);
    return 0;
}

求阶乘序列前N项和

本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和。

输入格式:
输入在一行中给出一个不超过12的正整数N。

输出格式:
在一行中输出整数结果。

输入样例:
5
输出样例:
153

#include <stdio.h>
int factorial(int n)
{
    int i,result=1;
    for(i=1;i<=n;i++){
        result*=i;
    }
    return result;
}
int main()
{
    int n,i,k;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        k+=factorial(i);
    }
    printf("%d",k);
    return 0;
}

乌拉乌拉无了无了

题目来自
在这里插入图片描述

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值