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的乘方表,输出30~3n
的值。可调用幂函数计算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;
}
网友评论