PTA-2017实验2.4 函数

6-1 简单实现x的n次方(10 分)
本题要求实现一个计算xn(n≥0)的函数。
函数接口定义:
double mypow( double x, int n );
函数mypow应返回x的n次幂的值。题目保证结果在双精度范围内。

裁判测试程序样例:

#include <stdio.h>

double mypow( double x, int n );

int main()
{
    double x;
    int n;

    scanf("%lf %d", &x, &n);
    printf("%f\n", mypow(x, n));

    return 0;
}
/* 你的代码将被嵌在这里 */

输入样例:

0.24 4

输出样例:

0.003318

程序源码

double mypow(double x, int n){
    double num;
    num=1;
    for(int i=1;i<=n;i++){
        num *=x;
    }
    return num;
}

6-2 使用函数求1到10的阶乘和(10 分)
本题要求实现一个计算非负整数阶乘的简单函数,使得可以利用该函数,计算1!+2!+⋯+10!的值。

函数接口定义:

double fact( int n );
其中n是用户传入的参数,其值不超过10。如果n是非负整数,则该函数必须返回n的阶乘。

裁判测试程序样例:

#include <stdio.h>

double fact( int n );

int main(void)
{    
    int i;
    double sum; 

    sum = 0; 
    for(i = 1; i <= 10; i++) 
        sum = sum + fact(i); 

    printf("1!+2!+...+10! = %f\n", sum); 
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

本题没有输入。

输出样例:

1!+2!+...+10! = 4037913.000000

程序源码

double fact( int n ){
    int num;
    num=1;
    for(int j=1;j<=n;j++){
            num *=j;
       }
   return num;
}

7-1 生成3的乘方表(15 分)
输入一个非负整数n,生成一张3的乘方表,输出3​0~3​n
​​ 的值。可调用幂函数计算3的乘方。

输入格式:

输入在一行中给出一个非负整数n。

输出格式:

按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。

输入样例:

3

输出样例:

pow(3,0) = 1
pow(3,1) = 3
pow(3,2) = 9
pow(3,3) = 27

程序源码

#include <stdio.h>
#include <math.h>

int main()
{
   int  n,num;
   scanf("%d",&n);
    for(int i=0;i<=n;i++){
        num = pow(3,i);
        printf("pow(3,%d) = %d\n",i,num);
      }
  
    return 0;
}

7-2 求平方根序列前N项和(15 分)
本题要求编写程序,计算平方根序列√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;
   double num;
   scanf("%d",&n);
   num=0;
    for(int i=0;i<=n;i++){
    num+=sqrt(i);   
  }
  printf("sum = %.2f",num);
    return 0;
}

7-3 求阶乘序列前N项和(15 分)
本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和。

输入格式:

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

输出格式:

在一行中输出整数结果。

输入样例:

5

输出样例:

153

程序源码

#include <stdio.h>
#include <math.h>

int main()
{
   int i,n,j,sum,num;
   scanf("%d",&n);
   num=1;
   for(i=1;i<=n;i++){
    for(j=i;j<=i;j++){
            num *=j;
       }
       sum+=num;
   }
   printf("%d",sum);
    return 0;
}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 3-1 求一元二次方程的根(20 分)本题目要求一元二次方程的根,结果保留2位小数。 输入格式:输入在一行中给出3...
    林之禾阅读 23,680评论 0 7
  • 7-1 求奇数和(15 分)本题要求计算给定的一系列正整数中奇数的和。输入格式:输入在一行中给出一系列正整数,其间...
    林之禾阅读 24,056评论 0 21
  • 7-1 计算摄氏温度(10 分)给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C=5×(F...
    林之禾阅读 68,460评论 0 12
  • `7-1 求N分之一序列前N项和(15 分)本题要求编写程序,计算序列 1 + 1/2 + 1/3 + ... 的...
    林之禾阅读 14,563评论 0 7
  • 1、对于普通人来说,一生最重要的功课就是学会接受不完美的自己。 ——荣格。 2、「我可能这辈子也爬不上珠穆朗玛峰了...
    嬉笑怒骂皆生活阅读 3,122评论 0 0

友情链接更多精彩内容