解题思路:
注意事项:
参考代码:
#include<iostream>
using namespace std;
int main()
{
int num[500000]={0},N,nHighestPos; //使用数组存放数字,nHighestPos表示数字的最高位的位置;
while(cin>>N)
{
nHighestPos=0;
num[0]=1;
if(N==0) cout<<1<<endl;
else
{
for(int i=N;i>1;i--)
{
for(int j=0;j<=nHighestPos;j++)
{
num[j]*=i;
}
for(int k=0;k<nHighestPos;k++)
{
if(num[k]>=10)
{
num[k+1]+=num[k]/10;
num[k]%=10;
}
}
while(num[nHighestPos]>=10)
{
num[nHighestPos+1]=num[nHighestPos]/10;
num[nHighestPos]%=10;
nHighestPos++;
}
}
for(int i=nHighestPos;i>=0;i--)
cout<<num[i];
cout<<endl;
}
}
return 0;
}
0.0分
2 人评分
川哥的吩咐 (C++代码)浏览:1022 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:661 |
【蟠桃记】 (C语言代码)浏览:668 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:683 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:721 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:1102 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:887 |
【计算直线的交点数】 (C语言代码)浏览:1461 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:577 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:703 |