c - 查找 1 到 N 范围内的阶乘
问题描述
试图编写一个程序来找到从 1 到 N 的数字范围的阶乘,N 是找到阶乘的最终数字,我编写了一个非递归程序。它仅适用于整数 1 和 2循环,我不确定如何修复它,因为逻辑看起来不错,而且我还是个初学者,所以我知道我可能遗漏了一些显而易见的东西,但无论如何这里是代码:
#include<stdio.h>
int main() {
int firstnumber;
int finalnumber;
printf("this is a program to calculate the factorial of numbers between 1 to N\n");
printf("please enter the final number : ");
scanf("%d",&finalnumber);
int i;
int factorial=1;
for (firstnumber=1;firstnumber<=finalnumber;firstnumber++) {
printf("the factorial of %d is : ",firstnumber);
for (i=1;i<=firstnumber;i++) {
factorial=factorial*i;
}
printf("%d \n ",factorial);
}
return 0;
}
解决方案
您需要factorial
在每次计算之前进行初始化。
int i;
// delete this
//int factorial=1;
for (firstnumber=1;firstnumber<=finalnumber;firstnumber++) {
printf("the factorial of %d is : ",firstnumber);
// move the declaration here
int factorial=1;
for (i=1;i<=firstnumber;i++) {
factorial=factorial*i;
}
printf("%d \n ",factorial);
}
推荐阅读
- django - DRF M2M 嵌套序列化器字段错误地键入为字符串
- algorithm - 当我们评估运行时,不等式符号重要吗?
- html - HTML 电子邮件 iPhone 媒体查询全宽 TD 不起作用
- pandas - concise way of flattening multiindex columns
- linux - 我有 apache 软件版本的文件记录,需要根据版本对它们进行排序
- javascript - Jquery + html5:预检响应具有无效的 HTTP 状态代码 405
- java - PSQLException:在此 ResultSet 中找不到列名“blah”
- javascript - 未选中一个复选框时如何取消选中以下所有复选框
- apache-spark - Spark CountVectorizer 返回一个 TinyInt
- python - 将 Pygamescreens 高效加载到 2D 列表