zoukankan      html  css  js  c++  java
  • 综合练习四

    问题 A: 多项式求和

    题目描述

    多项式的描述如下:1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...,现在请你求出该多项式的前n项的和。 

     
     

     

    输入要求

    输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<1000),求该多项式的前n项的和

     

    输出要求

    对于每个测试实例n,要求输出多项式前n项的和。每个测试实例的输出占一行,结果保留2位小数。

     

    假如输入

    3
    2 3 4

    应当输出

    0.50
    0.83
    0.58
    #include<stdio.h>
    int main(void)
    {
        int m,n,a,i;
        int x;
        double sum,item;
     
        scanf("%d",&m);
        for(a=1;a<=m;a++){
            scanf("%d ",&n);
                x=1;
                sum=0;
                item=1.0;
                for(i=1;i<=n;i++){
                sum=sum+item;
                x=-x;
                item=x*1.0/(i+1);
            }
                printf("%.2f
    ",sum);
        }
            return 0;
    }
                 

    问题 B: 计算矩阵各行的和

    题目描述

    输入2个正整数mn1m61n6),然后输入矩阵amn列)中元素,分别计算并输出各行元素之和。

    输入要求

    有多组测试数据,第一行输入k,k为测试的矩阵组数,第二行输入m和n,分别表示矩阵的行数和列数,然后输入mxn的矩阵元素。

    输出要求

    每行输出矩阵各行的元素之和,每个数据之间以空格隔开。

    假如输入

    1
    3 3
    1 2 3
    4 5 6
    7 8 9

    应当输出

    6 15 24 
    #include<stdio.h>
    int main(void)
    {
        int k,m,n,i,b,j,sum;
        int a[6][6];
        scanf("%d",&k);
         
     
        for(b=1;b<=k;b++){
            scanf("%d %d",&m,&n);
            for(i=0;i<m;i++)
                for(j=0;j<n;j++)
                    scanf("%d",&a[i][j]);
     
                for(i=0;i<m;i++){
                    sum=0;
                    for(j=0;j<n;j++)
                        sum=sum+a[i][j];
                    printf("%d ",sum);
                }
        }
        return 0;
    }
     

    问题 C: 用泰勒展开式计算sin

    题目描述

    用泰勒展开式计算sin,泰勒展开式如下:

    当最后一项的绝对值小于0.00001时,累加结束

     

     

    输入要求

    输入1个正整数x

     

    输出要求

    输出利用展开式算出的sin(x)值,保留6位小数

     

     

    假如输入

    30

    应当输出

    0.500000
    提示const double PI=3.1415926;
    #include<stdio.h>
    #include<math.h>
    #define P 3.1415926
    double fact(int m);
    int main(void)
    {
        int a,m;
        double item,sum,b,c;
        double x,y;
        scanf("%lf",&y);
        x=P/180*y;
        
        sum=0;
        item=1.0;
        a=1;
        m=1;
    
        while(fabs(item)>=0.00001){
            b=a*pow(x,m);
            c=fact(m);
            item=b/c;
            sum=sum+item;
            m=m+2;
            a=-a;
        }
        printf("%.6f
    ",sum);
        return 0;
    }
    
    double fact(int m)
    {
        int z;
        double result;
    
        result=1;
        for(z=1;z<=m;z++)
            result=result*z;
    
        return result;
    }
    
    
    
     
  • 相关阅读:
    一代人的青春--芳华
    用切面对监控日志的实现2
    一个在java后台实现的对图片进行加网纹或水印的工具类
    家乡的河
    家乡的鬼节—十来一儿
    八里沟印象
    双城记
    记忆中的那一树梨花
    用切面对监控日志的实现
    关于poi导出excel三种方式HSSFWorkbook,SXSSFWorkbook,csv的总结
  • 原文地址:https://www.cnblogs.com/simple9495/p/3453815.html
Copyright © 2011-2022 走看看