写在前面:
题解是对具体题目的编程实现,不会具体讲解C语言语法。请先大致学习好语法,自己敲敲代码后再看题解(上来就直接看题解的习惯不好哟~)。在每一题的题解之前,会列出本题涉及到的语法知识供参考,可以在教材或其他学习资源找到这些内容学习。😀
本题的预备知识:
- 变量的定义与赋值操作
- 输入(scanf)输出(printf)语句
- for循环语句
- 除法运算符 /
编写程序 , 求 e 的值
成绩 | 10 | 开启时间 | 2020年03月28日 星期六 08:50 |
折扣 | 0.8 | 折扣时间 | 2020年04月20日 星期一 16:50 |
允许迟交 | 是 | 关闭时间 | 2020年04月30日 星期四 13:50 |
编写程序,从键盘输入整数 n , 求 e 的值 . e=1+1/1!+1/2!+1/3!+..+1/n! 注意 : 用 double 型数据计算
题解
此题直接明了,主要考察代码能力,不需要想算法...代码可以直接写出来:
#include <stdio.h> //导入stdio.h库,里面包含输入输出函数
int main() {
int n;
scanf("%d", &n);
double e = 1; //初值情况
long long int cur = 1;
for (int i = 1; i <= n; i++) {
cur *= i; //计算 i! 更新入cur中
e += 1.0 / cur; //每次累加上 1/i! 的结果
}
printf("e=%f\n", e);
}
主要注意:
- 储存阶乘值的 cur 应该设置为 long long int (长整型变量),当n大一点时,int的范围是不够的
- e += 1.0 / cur 中为什么是 1.0 而不是1,与除法运算符 '/' 的规则相关,之前已经提到过。可以看看这篇文章的最后注意 计算时钟的夹角
有任何问题欢迎评论交流,如果本文对您有帮助不妨点点赞,嘻嘻~
end
欢迎关注个人公众号“ 鸡翅编程 ”,这里是认真且乖巧的码农一枚。
---- 做最乖巧的博客er,做最扎实的程序员 ----
旨在用心写好每一篇文章,平常会把笔记汇总成推送更新~