不输出就停止运行???
这是我写的一个算阶乘的简单程序:
#include <iostream>
using namespace std;
int a[100000],b[100000];
int n;
int flag;//位数
void setzero();
void Doride();
void ride(int i);
void add();
void AtoB();
void print();
void setzero()
{
for(int i=1;i<=100000;i++)
{
a[i]=0;
b[i]=0;
}
a[1]=1;
}
void Doride()
{
cin>>n;
for(int i=2;i<=n;i++)
{
ride(i);
cout<<i<<"jieguo"<<endl;
print();
}
}
void ride(int i)
{
AtoB();
for(int l=2;l<=i;l++)
add();//add b to a i ci
}
void add()
{
for(int i=1;i<=flag;i++)
a[i]+=b[i];
//进位
for(int j=1;j<=flag;j++)
{
if (a[j]>=10)
{
a[j]-=10;
a[j+1]++;
flag++;
}
}
while (a[flag]>=10)
{
a[flag]-=10;
flag++;
a[flag]++;
}
}
void AtoB()
{
for(int i=1;i<=flag;i++)
b[i]=a[i];
}
void print()
{
int i;
for(i=flag;i>=1;i--)
{
if(a[i]!=0)
{
flag=i;
i=0;
}
}
for(i=flag;i>=1;i--)
cout<<a[i];
cout<<endl;
}
void main()
{
flag=1;
setzero();
Doride();
//print();
}
只要不输出结果
即去掉Doride中的
print();
在main中加上print();
输出到82jieguo就自动停止。
求解。。