PTA 2.4

来源:互联网 发布:mac怎么强制退出软件 编辑:程序博客网 时间:2024/05/17 04:42

7-1 求N分之一序列前N项和(15 分)
本题要求编写程序,计算序列 1 + 1/2 + 1/3 + … 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。
输入样例:
6
输出样例:
sum = 2.450000


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

7-1 求奇数分之一序列前N项和(15 分)
本题要求编写程序,计算序列 1 + 1/3 + 1/5 + … 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。
输入样例:
23
输出样例:
sum = 2.549541


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

7-2 求简单交错序列前N项和(15 分)
本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + … 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。
输入样例:
10
输出样例:
sum = 0.819


#include<stdio.h>int main(){    int n, a=1,b=1;     double i=1,s=0;    scanf("%d",&n);     while(a<=n)    {           if(b%2==0)        {s=s-1/i;        }           else        {s=s+1/i;        }        i=i+3;        a++;        b++;    }    printf("sum = %.3f",s);    return 0;}

7-1 求平方与倒数序列的部分和(15 分)
本题要求对两个正整数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>int main(){    int m,n;    double s=0,a;    scanf("%d %d",&m,&n);    while(m<=n)    {s=s+m*m+1.000000/m;     m++;    }    printf("sum = %.6f",s);    return 0; }

7-2 求交错序列前N项和(15 分)
本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+… 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,结果保留三位小数。
输入样例:
5
输出样例:
0.917


#include<stdio.h>int main(){    int n,m=1,a=1;    double s=0,b=1;    scanf("%d",&n);    while(m<=n)    {           if(a%2==0)        {s=s-a/b;        }        else        {s=s+a/b;        }           m++;        a++;        b+=2;    }    printf("%.3f",s);    return 0;}