以下程序用来求一个数的阶乘,结果存放在一个int型、大小为100的一维数组里
程序我已经运行过了,没有问题
#include <iostream>
using namespace std;
const int size = 100; //数组大小
int J[size]; //用它存放阶乘的结果,每个数组元素存放一个十进制数
void jiecheng(const int number)
{
/////////1 对J[]初始化////////
for(int i = 0; i < size; i++)
{
J[i] = 0;
}
J[size - 1] = 1;
if(number == 0)
{
J[size - 1] = 0;
return;
}
////////1/////////
int jinwei = 0;
for(i = 2; i <= number; i++)
{
int position = size - 1;
/////////2///////
int flag = 1;
for(int j = 0; j < size; j++)
{
if(flag)
{
J[position] *= i;
}
flag = 1;
if(J[position] >= 10)
{
jinwei = J[position] / 10;
J[position] %= 10;
J[position - 1] *= i;
J[position - 1] += jinwei;
flag = 0;
}
position--;
}
////////2////////
}
}
int main()
{
jiecheng(8);
for(int i = 0; i < size; i++)
{
cout << i << " : " << J[i] << endl;
}
return 0;
}
程序我已经运行过了,没有问题
#include <iostream>
using namespace std;
const int size = 100; //数组大小
int J[size]; //用它存放阶乘的结果,每个数组元素存放一个十进制数
void jiecheng(const int number)
{
/////////1 对J[]初始化////////
for(int i = 0; i < size; i++)
{
J[i] = 0;
}
J[size - 1] = 1;
if(number == 0)
{
J[size - 1] = 0;
return;
}
////////1/////////
int jinwei = 0;
for(i = 2; i <= number; i++)
{
int position = size - 1;
/////////2///////
int flag = 1;
for(int j = 0; j < size; j++)
{
if(flag)
{
J[position] *= i;
}
flag = 1;
if(J[position] >= 10)
{
jinwei = J[position] / 10;
J[position] %= 10;
J[position - 1] *= i;
J[position - 1] += jinwei;
flag = 0;
}
position--;
}
////////2////////
}
}
int main()
{
jiecheng(8);
for(int i = 0; i < size; i++)
{
cout << i << " : " << J[i] << endl;
}
return 0;
}
Breath deeply, three times a day, hold on for one year----我要说的是:坚持真的是件很难的事。