这是一个因子程序,我是在编码网站上制作的。请帮我找到为什么错了?
it('example to pass wait time from json file:'function(){
//line of codes
utility.wait(input.shorWait);//make sure that wait method available in
//utility file
browser.sleep(input.longWait)
});
答案 0 :(得分:3)
您应该在每个测试用例开始时将f
的值重新初始化为1。
#include <iostream>
using namespace std;
int main()
{
int i, j, f = 1;
int t, a[100];
cin >> t;//enter test cases
for (i = 0; i < t; i++)
cin >> a[i];//enter all the cases one by one
for (i = 0; i < t; i++)
{
f = 1 // add this line
for (j = 1; j <= a[i]; j++)
f = f*j;
cout << f;//displays each factorial
}
return 0;
}
答案 1 :(得分:0)
每次计算阶乘时,都应该重新初始化factorial variable f
的值,也不需要使用数组来存储所有被请求的阶乘案例而不必要地浪费内存。
以下是优化的解决方案:
#include <iostream>
using namespace std;
int main()
{
int i, j, f,num;
int t;
cin >> t; //enter test cases
for (i = 0; i < t; i++)
{
cin >> num;
f = 1;
for (j = 1; j <= num; j++) {
f = f * j;
}
//displays each factorial
cout << f << endl;
}
return 0;
}