下载此文档

n的阶乘程序报告.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
- . -
. . -可修编-
/****** 定义变量局部 ******/
int n;/***定义核心变量n ***/
int i,j,k=0;/***定义辅助变量***/
int a[200]={1},m;
/***定义并初始化数组a , 其中m=结果的位数除以4的余数***/

/****** 获取用户输入的数据 ******/
printf("please input a number 〔1~100〕n: \n ");
scanf("%d",&n);

/****** 输入数据不合要求时的情况处理 ******/
if(n>100||n<1)
printf("Sorry!You enter a wrong number. \n");
for(i=1;i<=n;i++)
{
for(j=0;j<200;j++)
{
a[j]*=i;
}
for(j=0;j<200;j++)
{
a[j+1]+=a[j]/10;
a[j]%=10;
}
}
核心
上面的这一模块为核心模块,是用乘法的根本原理把用户给的数据求得阶乘后的结果的个、十、百、千...位依次赋数给数组a[200],即a[0] =个位上的数,a[1] =十位上的数 .....
- . -
. . -可修编-
for(i=199;i>=0;i--)
{
if(a[i]!=0)
{
j=i;
break;
}
} /***求出n阶乘结果的位数减一 (结果位数为j+1)***/
m=(j+1)%4;/***算出结果的位数除以4的余数***/
printf("the factorial of %d is:\n ",n);
/****** 按要求输出结果 ******/
if(m!=0)
{
for(i=j;i>=0;i--)
{
printf("%d",a[i]);
k++;
if(k==m)
break;
} /*** 输出余数不为零时第一个逗号前的数 ***/
for(i=j-m;i>=0;i--)
{
if((k-m)%4==0)
printf(",");
printf("%d",a[i]);
k++;
}
printf("\n");
}/***** 按要求输出余数不为零时剩下的数 *****/

else
{
for(i=j;i>=0;i--)
{
printf("%d",a[i]);
k++;
if(k%4==0&&k!=j+1)
printf(",");
}
printf("\n

n的阶乘程序报告 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人hnxzy51
  • 文件大小253 KB
  • 时间2022-01-15
最近更新