题目:
从键盘输入一个值n,计算n的阶乘,
如:输入5,计算5的阶乘 --> 5! = 1 * 2 * 3 * 4 * 5
思路:
第一步:
创建一个变量 ret ,用来存放每次相乘后的值,
因为 0 乘 任何数都为 0,所以应初始化为 1
实现代码:
//计算n的阶乘: #include <stdio.h>int main() {//输入n:int n = 0;scanf("%d", &n);//创建一个变量 ret ,用来存放每次相乘后的值,因为 0 乘 任何数都为 0,所以应初始化为 1int ret = 1;return 0; }
实现图片:
第二步:
利用 for循环 和前面输入的 n 循环生成 1~n 个数,
再使用上一步的 ret变量 依次相乘生成的 1~n 个数,
这也是前面把 ret 初始化为 1 的原因,防止0乘任何数都为0,
再赋给 ret变量 本身。
实现代码:
//计算n的阶乘: #include <stdio.h>int main() {//输入n:int n = 0;scanf("%d", &n);//创建一个变量 ret ,用来存放每次相乘后的值,因为 0 乘 任何数都为 0,所以应初始化为 1int ret = 1;//利用 for循环 和前面输入的 n 循环生成 1~n 个数,//再使用上一步的 ret变量 依次相乘生成的 1~n 个数,//这也是前面把 ret 初始化为 1 的原因,防止0乘任何数都为0,//再赋给 ret变量 本身。int i = 0;for (i = 1; i <= n; i++) //利用 for循环 和前面输入的 n 循环生成 1~n 个数{ret = ret * i;//再使用上一步的 ret变量 依次相乘生成的 1~n 个数,再赋给 ret变量 本身}return 0; }
实现图片:
最终代码和实现效果:
最终代码:
//计算n的阶乘: #include <stdio.h>int main() {//输入n:int n = 0;scanf("%d", &n);//创建一个变量 ret ,用来存放每次相乘后的值,因为 0 乘 任何数都为 0,所以应初始化为 1int ret = 1;//利用 for循环 和前面输入的 n 循环生成 1~n 个数,//再使用上一步的 ret变量 依次相乘生成的 1~n 个数,//这也是前面把 ret 初始化为 1 的原因,防止0乘任何数都为0,//再赋给 ret变量 本身。int i = 0;for (i = 1; i <= n; i++) //利用 for循环 和前面输入的 n 循环生成 1~n 个数{ret = ret * i;//再使用上一步的 ret变量 依次相乘生成的 1~n 个数,再赋给 ret变量 本身}printf("%d", ret);return 0; }
实现效果: