zoukankan      html  css  js  c++  java
  • [刷题] 多项式计算

    1、写一个函数PrintN,使得传入一个N,打印从1到N的全部整数

    #include<stdio.h>
    //循环实现
    void PrintN(int N){
        int i;
        for(i = 1;i<=N;i++){
            printf("%d
    ",i);
        }
        return;
    }
    
    //递归实现
    void PrintN1(int N){
        if(N){
            PrintN1(N-1);
            printf("%d
    ",N);
        }
        return;
    }
    
    int main(){
        int N;
        scanf("%d",&N); 
        PrintN(N);
        return 0;
    }

    2、写程序计算给定多项式在给定点x处的值f(x)=a0+a1*x+...+an-1*x^(n-1)+an*x^n

    将多项式写成如下形式:f(x)=a0+x(a1+x(...(an-1+x(an))...))

    #include <stdio.h>
    #include <time.h>
    #include <math.h>
    
    clock_t start,stop;
    double duration;
    #define MAXN 10    /*多项式次数*/ 
    #define MAXK 1e7    /*被测函数最大重复调用次数*/ 
    double f1(int n,double a[],double x);
    double f2(int n,double a[],double x);
    
    int main(){
        int i;
        double a[MAXN];
        for (i=0;i<MAXN;i++) a[i]=(double)i;
        /*测试f1*/
        start = clock();    /*开始计时*/ 
        for(i=0;i<MAXK;i++)
            f1(MAXN-1,a,1.1);        /*被测试函数*/
        stop = clock();        /*停止计时*/
        duration = ((double)(stop-start))/CLK_TCK/MAXK;
        printf("ticks1 = %f
    ",(double)(stop-start));
        printf("duration1 = %6.2e
    ",duration); 
        /*测试f2*/
        start = clock();
        for(i=0;i<MAXK;i++)
            f2(MAXN-1,a,1.1);    
        stop = clock();
        duration = ((double)(stop-start))/CLK_TCK/MAXK;
        printf("ticks2 = %f
    ",(double)(stop-start));
        printf("duration2 = %6.2e
    ",duration); 
        
        return 0;
    }
    
    double f1(int n,double a[],double x){
        int i;
        double p = a[0];
        for(i = 1;i<=n;i++)
        p+=(a[i]*pow(x,i));
        return p;
    }
    
    double f2(int n,double a[],double x){
        int i;
        double p = a[n];
        for(i = 1;i>0;i--)
        p=a[i-1]+x*p;
        return p;
    }

     结果:

  • 相关阅读:
    指针数组和数组指针
    initializer_list
    main:处理命令行选项
    Synchronized 和Lock区别
    sleep和wait的区别
    什么时候会发生类初始化
    类的加载与ClassLoader的理解
    获取Class类的实例
    元注解
    IO流思维导图
  • 原文地址:https://www.cnblogs.com/cxc1357/p/10604797.html
Copyright © 2011-2022 走看看