题目:
此处题目是以1-20的阶乘之和举例
方法一:使用一层for循环实现 代码简单快捷容易理解代码示例如下:
#includeint main(){double a = 1, sum = 0;//因为最后值可能会超出int所能接收的范围 故用doubleint n, i;scanf("%d", &n);//注意scanf_s和scanf的使用场景for (i = 1; i 0; j--) { single_num *= j;//j控制阶乘 } total_sum += single_num; } printf("%lf ", total_sum); return 0;}运行结果如下:
方法三:函数递归实现 #includelong int fac(unsigned int n) //定义为long int 型,避免溢出{ long int f; if (n == 0) return; //当n=0是,递归法到尽头,依次返回函数值。 f = fac(n - 1) * n; return (f); //返回最后一次函数值,即单次阶乘的最后结果}int main(){ unsigned int n; long int s =0; int i; scanf_s("%d", &n);//此处注意scanf_s与scanf的使用场景 for (i = 1; i > n; if (n > 14) return 0; for (i = 1; i < n; i++) { double b = fac(i); sum += b; } cout
