阶乘.cpp
来自「实现 任意数的阶乘 利用数组扩展位数 底层算法」· C++ 代码 · 共 61 行
CPP
61 行
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int u,s=1,jin=0;
vector<int> a;
cout<<"请输入阶乘数 :";
while(cin>>u&&u)
{cout<<endl;
a.clear();
//int a[10000];
a.push_back(1);
for(int i=2;i<=u;++i)
{ jin=0;
for(int j=0;j<s;++j)
{
a[j]=a[j]*i;
a[j]=a[j]+jin;
jin=a[j]/10;
a[j]=a[j]%10;
}
while(jin>0)
{
/* if(jinn=jin/10)
{
s=s+2;
a[s-1]=jinn;
jin=jin-jinn*10;
jinn=0;
a[s-2]=jin;
jin=0;
}
else {
a[++s-1]=jin; jin=0;}
*/
//s++; //新加一位
// a[s-1]=jin%10;
// jin=jin/10;
s++; a.push_back(jin%10);
jin=jin/10;
}
}
for(int i=s-1;i>=0;--i)
cout<<a[i];
if(s>6)
{ cout<<endl<<a[s-1]<<".";
for(int i=s-2;i>=s-6;--i)
cout<<a[i];
cout<<" E+"<<s-1<<endl;}
s=1;cout<<endl<<"请输入阶乘数 :";
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?