#include<iostream>
#include<array>
using namespace std;
int main(){
int i;
array<long double, 16>fact;
fact[1]=fact[0]=1ll;
for(i=2;i<=16;i++)
fact[i]=i*fact[i-1];
for(i=0;i<=16;i++)
std::cout<<i<<"!="<<fact[i]<<std::endl;
return 0;
}
#include<iostream>
#include<array>
using namespace std;
int main(){
int i;
array<long double, 16>fact; //数组是16个,改为array<long double, 17>fact;
fact[1]=fact[0]=1ll;
for(i=2;i<=16;i++) //i=16的时候,边界溢出了,所以打印出现的结果是错的。
fact[i]=i*fact[i-1];
for(i=0;i<=16;i++)
std::cout<<i<<"!="<<fact[i]<<std::endl;
return 0;
}
#include<array>
using namespace std;
int main(){
int i;
array<long double, 16>fact; //数组是16个,改为array<long double, 17>fact;
fact[1]=fact[0]=1ll;
for(i=2;i<=16;i++) //i=16的时候,边界溢出了,所以打印出现的结果是错的。
fact[i]=i*fact[i-1];
for(i=0;i<=16;i++)
std::cout<<i<<"!="<<fact[i]<<std::endl;
return 0;
}
温馨提示:答案为网友推荐,仅供参考