📄 n!.cpp
字号:
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
int n;
void count()
{
int m,flag=0,top=1,zero=0,fac[10000]={0},add[10000]={0};
fac[1]=1;
int i,j;
for(i=1;i<n+1;i++)
{
for(j=1;j<=top;j++)
{
fac[j]=fac[j]*i;
if((fac[j])>9)
{
m=fac[j]%10;
add[j]+=(fac[j]-m)/10;
fac[j]=m;
if(j==top)
flag++;
}
}
for(j=1;j<top+1;j++)
{
fac[j]+=add[j-1];
add[j-1]=0;
if(fac[j]>9)
{
m=fac[j]%10;
add[j]+=(fac[j]-m)/10;
fac[j]=m;
}
}
for(;add[j-1]>9;j++)
{
fac[j]=add[j-1];
add[j-1]=0;
m=fac[j]%10;
add[j]+=(fac[j]-m)/10;
fac[j]=m;
flag++;
}
if(add[j-1]>0)
{
fac[j]=add[j-1];
add[j-1]=0;
}
if(flag)
top+=flag;
flag=0;
}
cout<<n<<"!=";
for(i=top;i>0;i--)
{
cout<<fac[i]; /*******输出n!******/
if(fac[i]==0)
zero++; /****计算0的个数****/
}
cout<<endl;
cout<<"There are "<<zero<<" zeros!"<<endl;
}
/*******输入n*******/
void input()
{
int flag;
char t[100];
do{
flag=0;
cout<<"type in n:";
cin>>t;
for(int i=0;i<strlen(t);i++)
{
if(t[i]<'0' ||t[i]>'9')
flag=1;
}
if(flag)
cout<<"input error! please try again!"<<endl;
}while(flag);
n=atoi(t);
}
/**********运行界面*********/
void menu()
{
cout<<"\t\t I------You \n";
cout<<"\t\t n!运算 \n";
cout<<"\t\t -------------------------------------\n";
cout<<"\t\t 1.输入阶数n\n";
cout<<"\t\t 0.退出\n";
cout<<"\t\t -------------------------------------\n";
cout<<"\t\t B06020307丁飞 \n";
cout<<"\t\t+-------------------------------------------+\n";
}
//接收菜单选择
char get_menu_choice()
{
char menu_choice[10];
do
{
cout<<"---★--*Please Make Your choice*--★---\n>>>";
cin>>menu_choice;
if(menu_choice[0]<'0' ||menu_choice[0]>'1'||strlen(menu_choice)>1)
{
if(strlen(menu_choice)>=9)
{
cout<<"输入有误,退出程序\n";
exit(0);
}
cout<<"input error, try again\n";
}
}while(menu_choice[0]<'0' || menu_choice[0]>'1'||strlen(menu_choice)>1);
return menu_choice[0];
}
//菜单响应函数
void menu_done()
{
while(1)
{
menu();
switch(get_menu_choice())
{
case '1':
input(); //输入n
count(); //计算n!
break;
case '0':
cout<<"\n谢谢使用再见!\n";
exit(0); //程序正常退出
}
}
}
//主函数
void main()
{
menu_done();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -