📄 9_7jiechen.cpp
字号:
#include<iostream.h>
#include<stdio.h>
#include<ctype.h>
#define max 80
#include "time.h"
void main()
{
clock_t start, finish;
double usetime;
int a[max],b[max];
int i,j,m,k,r,n;
char N[3];
char ch;
cout<<"***************************************************************"<<endl;
cout<<" 求阶乘! "<<endl;
cout<<" 注意:请输入在1到324的范围内的数字,并输入三位有效数字 "<<endl;
cout<<" 例如,要计算1的阶乘,请输入001,要计算12的阶乘,请输入012 "<<endl;
cout<<"****************************************************************"<<endl;
do{
cout<<"请输入要计算的数字(在1到324的范围内):";
cin>>N;
while(int(N[0]-48)<0||int(N[0]-48)>9)
{
cout<<"输入的第一位不是数字!请重新输入!"<<endl;
cout<<"请输入要计算的第一位数字(在1到324的范围内):";
cin>>N[0];
}
while(int(N[1]-48)<0||int(N[1]-48)>9)
{
cout<<"输入的第二位不是数字!请重新输入!"<<endl;
cout<<"请输入要计算的第二位数字(在1到324的范围内):";
cin>>N[1];
}
while(int(N[2]-48)<0||int(N[2]-48)>9)
{
cout<<"输入的第三位不是数字!请重新输入!"<<endl;
cout<<"请输入要计算的第三位数字(在1到324的范围内):";
cin>>N[2];
}
while(int(N[2]-48)+int(N[1]-48)*10+int(N[0]-48)*100<1||int(N[2]-48)+int(N[1]-48)*10+int(N[0]-48)*100>324)
{
cout<<"超出范围!请重新输入!"<<endl;
cout<<"请输入要计算的数字(在1到324的范围内):";
cin>>N;
while(int(N[0]-48)<0||int(N[0]-48)>9)
{
cout<<"输入的第一位不是数字!请重新输入!"<<endl;
cout<<"请输入要计算的第一位数字(在1到324的范围内):";
cin>>N[0];
}
while(int(N[1]-48)<0||int(N[1]-48)>9)
{
cout<<"输入的第二位不是数字!请重新输入!"<<endl;
cout<<"请输入要计算的第二位数字(在1到324的范围内):";
cin>>N[1];
}
while(int(N[2]-48)<0||int(N[2]-48)>9)
{
cout<<"输入的第三位不是数字!请重新输入!"<<endl;
cout<<"请输入要计算的第三位数字(在1到324的范围内):";
cin>>N[2];
}
}
n=int(N[2]-48)+int(N[1]-48)*10+int(N[0]-48)*100;
if(n==1) cout<<"1!=1";
else{
start = clock();
for(i=0;i<max;i++)
a[i]=0;
a[0]=1;
for(j=2;j<=n;j++)
{
for(i=0;i<max;++i)
b[i]=a[i];
for(m=1;m<j;++m)
for(i=0;i<max;++i)
{
r=a[i]+b[i];
if(r>9) a[i+1]++;
a[i]=r%10;
}
k=max-1;
while(a[k]==0)
k--;
}
cout<<n<<"!=";
for(i=k;i>=0;i--)
cout<<a[i];
}
finish = clock();
usetime= (double)(finish - start) / CLOCKS_PER_SEC;
cout<<endl<<"程序用时"<<usetime<<"秒"<<endl;
cout<<endl<<"是否继续?[y/n]";
cin>>ch;
}while((ch=='y')||(ch=='Y'));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -