集美大学 - 2840 - 实验2-4 - 编程题

实验2-4-20-for 生成3的乘方表

输入一个非负整数n,生成一张3的乘方表,输出 3 0 3^0 30~ 3 n 3^n 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
#include

int main() {
    int n;
    int x = 0, p;
    scanf("%d", &n);
    while (x <= n) {
        p = pow(3, x);
        printf("pow(3,%d) = %d", x, p);
        x++;
        if (x <= n)printf("\n");
    }
    return 0;
}

实验2-4-3-for 求平方根序列前N项和

本题要求编写程序,计算平方根序列 1 + 2 + 3 + . . . \sqrt{1}+\sqrt{2}+\sqrt{3}+... 1 +2 +3 +...的前N项之和。可包含头文件math.h,并调用sqrt函数求平方根。

输入格式:
输入在一行中给出一个正整数N。

输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后两位。题目保证计算结果不超过双精度范围。

输入样例:

10

输出样例:

sum = 22.47
#include
#include

int main() {
    double N, x = 1, sum = 0;
    scanf("%lf", &N);
    while (x <= N) {
        sum = sum + sqrt(x);
        x++;
    }
    printf("sum = %.2f", sum);
    return 0;
}

实验2-4-4-for 求阶乘序列前N项和

本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和。

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

输出格式:
在一行中输出整数结果。

输入样例:

5

输出样例:

153
#include

int main() {
    int N, x = 1, sum = 0, m = 1;
    scanf("%d", &N);
    while (x <= N) {
        sum = sum + m;
        x++;
        m = m * x;
    }
    printf("%d", sum);
    return 0;
}

实验2-4-6 -for 求幂之和

本题要求编写程序,计算 s u m = 2 1 + 2 2 + 2 3 + . . . + 2 n sum=2^1+2^2+2^3+...+2^n sum=21+22+23+...+2n。可以调用pow函数求幂。

输入格式:
输入在一行中给出正整数n(≤10)。

输出格式:
按照格式“result = 计算结果”输出。

输入样例:

5

输出样例:

result = 62
#include
#include

int main() {
    int x = 1, n, sum = 0, m;
    scanf("%d", &n);
    while (x <= n) {
        m = pow(2, x);
        sum = sum + m;
        x++;
    }
    printf("result = %d", sum);
    return 0;
}

实验2-4-7 -for 求组合数

本题要求编写程序,根据公式 C n m = n ! m ! ( n − m ) ! C_n^m=\frac{n!}{m!(n-m)!} Cnm=m!(nm)!n!算出从n个不同元素中取出m个元素(m≤n)的组合数。

建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double

输入格式:
输入在一行中给出两个正整数m和n(m≤n),以空格分隔。

输出格式:
按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。

输入样例:

2 7

输出样例:

result = 21
#include

double fact(int s) {
    double x = 1;
    double y = 1;
    for (x = 1; x <= s; x++) {
        y *= x;
    }
    return y;
}

int main() {
    double m, n;
    scanf("%lf %lf", &m, &n);
    printf("result = %.f", fact(n) / (fact(n - m) * fact(m)));
    return 0;
}

说明:函数格式如下

函数数据类型 函数名(参数列表){
		// 函数实体
		return (返回值);
		// 如果函数数据类型为void可以不写`return;`,也可以只写`return;`
		// 但其他数据类型的函数一定要写`return 需要返回的值;`
		// 不过C语言只支持返回一个你需要的值,如果我需要返回多个函数的值该怎么办呢?
		// 那就要用到后面学到的指针啦(C语言的灵魂)。
}

你可能感兴趣的:(集美大学,-,2840,算法,c++,c语言,开发语言)