nbuzjj123 发表于 2020-5-19 20:06:18

c语言构造函数求阶乘

c语言求阶乘,求助

liuzhengyuan 发表于 2020-5-19 20:31:19

return func(n-1)

nbuzjj123 发表于 2020-5-19 21:10:25

liuzhengyuan 发表于 2020-5-19 20:31
return func(n-1)

亲能写下具体的第三个函数吗

永恒的蓝色梦想 发表于 2020-5-19 21:15:33

本帖最后由 永恒的蓝色梦想 于 2020-5-19 21:17 编辑

#include<stdio.h>
typedef unsigned long long ull;


ull fac1(ull n) {
    ull res;
    for (res = 1; n; res *= n--);
    return res;
}


ull fac2(ull n) {
    return n ? n * fac2(n - 1) : 1;
}


ull facsum(ull(*func)(ull), ull n, ull m) {
    ull res = 0;
    m += n;

    do {
      res += func(m);
    } while (m-- != n);

    return res;
}


int main() {
    ull m, n;
    scanf("%llu%llu", &n, &m);
    printf("%llu", facsum(n < 10 ? fac1 : fac2, m, n));
    return 0;
}

永恒的蓝色梦想 发表于 2020-5-19 21:18:30

nbuzjj123 发表于 2020-5-19 21:10
亲能写下具体的第三个函数吗

满意请选最佳哦{:10_297:}

nbuzjj123 发表于 2020-5-19 21:22:09

永恒的蓝色梦想 发表于 2020-5-19 21:18
满意请选最佳哦

ok谢谢了
页: [1]
查看完整版本: c语言构造函数求阶乘