阶乘使用循环递增给出垃圾值
factorial using increement for loop gives garbage value
#include<iostream>
using namespace std;
int main()
{
int fact;
for(int i=1; i<=fact; i++)
{
fact = fact*i;
}
cout<<fact;
}
输出:垃圾值。
请任何人告诉我为什么使用循环递增给我这个而不是循环递减。
你可以做两件事,
1)如果你想要自己的代码,你必须用值1初始化你的值事实:
int fact = 1;
2)对于这个"事实"的东西,有一个非常简单的衬里。如果我在某些时候需要它,我经常自己使用它。
int factorial(int n)
{
return (n == 1 || n == 0) ? 1 : factorial(n - 1) * n;
}
#include<iostream>
using namespace std;
int main()
{
int fact,z=1;
cin>>fact;
for(int i=2; i<=fact; i++)
{
z= z*i; //use another variable using fact here will lead to a possible infinite loop
}
cout<<z<<"n";
}
相关文章:
- 在 C++ 中的数组上使用阶乘函数
- 阶乘问题在 c++ 中给出错误的输出
- 大数的阶乘给出错误的输出
- 什么模板用法在阶乘中更好
- 为什么我在C++阶乘函数中出现编译错误?
- 计算阶乘的 C++17 倍表达式中的错误
- 为什么 Lisp 中 1000 阶乘的计算如此之快(并显示正确的结果)?
- 在C++中执行 N 阶乘编译时间的 3 种不同/相同方法
- 平方模型为零,阶乘模型问题
- 阶乘元规划
- 阶乘-c++ 我想以不同的方式打印
- 阶乘函数只返回C++中输入的答案
- 阶乘使用循环递增给出垃圾值
- 大 n 表示阶乘
- 为什么我不能在非常量表达式上使用此模板阶乘函数?
- 计算最大数字的阶乘
- 这个阶乘程序内部发生了什么?
- 返回阶乘C++的递归函数
- C++ 中是否有任何内置阶乘函数?
- 高效计算阶乘