解题思路:
暴力的方法是写一个阶乘函数,从1到30调用函数,但是非常耗时。根据(n+1)! = n! * (n+1),可以定义一个i从1递增到30,定义一个变量保存更新后的阶乘,每更新一次就加到总和上,然后i++,这样就大大减轻了时间消耗。
注意事项:
阶乘和总和都要用double表示。
参考代码:
// 题目 1064: 二级C语言-阶乘数列 #include<iostream> using namespace std; int main() { int num = 30; // n的阶乘 int i = 1; // (n+1)! = n! * (n+1),此时i=n+1 double fact = 1; // 阶乘 double sum = 0; // 结果 while (num--) { fact *= i; sum += fact; i++; } printf("%.2e\n", sum); // 科学计数法(保留2位小数) return 0; }
0.0分
4 人评分
P1002 (C语言代码)浏览:1019 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:436 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:350 |
核桃的数量 (C语言代码)浏览:726 |
矩阵乘方 (C语言代码)浏览:1079 |
Tom数 (C语言代码)浏览:581 |
2006年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:726 |
买不到的数目 (C语言代码)浏览:3134 |
C语言训练-百钱百鸡问题 (C语言代码)浏览:541 |
Manchester-台球碰撞-(附带图解)浏览:3787 |