输入一个自然数n,求n!,同时统计结果中有多少个0程序分析解释
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 05:08:22
输入一个自然数n,求n!,同时统计结果中有多少个0程序分析解释
#include "stdio.h"
void main()
{
int fun(int x);
float jc(int x);
int n,i;
float k;
printf("type in the \n");
scanf("%d",&n);
i=fun (n);
k=jc (n);
printf("%d!is %10.0f\nthere are %d zero!\n",n,k,i);
}
int fun(int x)
{
int i=0;
while(x!=0)
{
x=x/5;
i+=x;
}
return (i);
}
float jc(int x)
{
float i;
if (x==0||x==1)
i=1;
else
i=jc(x-1)*x;
return (i);
}
需要此程序每步的解释
#include "stdio.h"
void main()
{
int fun(int x);
float jc(int x);
int n,i;
float k;
printf("type in the \n");
scanf("%d",&n);
i=fun (n);
k=jc (n);
printf("%d!is %10.0f\nthere are %d zero!\n",n,k,i);
}
int fun(int x)
{
int i=0;
while(x!=0)
{
x=x/5;
i+=x;
}
return (i);
}
float jc(int x)
{
float i;
if (x==0||x==1)
i=1;
else
i=jc(x-1)*x;
return (i);
}
需要此程序每步的解释
不知道你要详细到什么程度!
首先要明白求N!结果中未尾0个数的算法思想:N的2的因子多于5的因子,有一个5的因子就可得到一个0,N
可以分解出几个5的因子就可得到几个0.(例如求2008!未尾0的个数:2008/5+2008/25+2008/125+2008/625=500或2008/5+401/5+80/5+16/5=500)
#include "stdio.h" /*包含标准输入输出文件*/
void main() /*主函数*/
{
int fun(int x); /*声明fun函数,此函数用于求N!未尾0的个数*/
float jc(int x); /*声明jc函数,此函数用于求N!*/
int n,i;
float k;
printf("type in the n!\n"); /*输出提示信息*/
scanf("%d",&n); /*输入一个整数N*/
i=fun (n); /*求N!未尾0的个数*/
k=jc (n); /*求N!*/
printf("%d!is %10.0f\nthere are %d zero!\n",n,k,i); /*输出结果*/
}
int fun(int x)/*定义fun函数*/
{
int i=0;
while(x!=0)/*请参照求2008!未尾0的个数仔细理解此while循环*/
{
x=x/5;
i+=x;
}
return (i); /*返回N!未尾0的个数*/
}
float jc(int x)/*定义jc函数*/
{
float i;
if (x==0||x==1)/*0!=1、1!=1此为递归调用的出口*/
i=1;
else
i=jc(x-1)*x;/*递归调用jc函数(执行N!=(N-1)!*N)*/
return (i); /*返回N!*/
}
不懂的话,多看看C语言入门书籍!
首先要明白求N!结果中未尾0个数的算法思想:N的2的因子多于5的因子,有一个5的因子就可得到一个0,N
可以分解出几个5的因子就可得到几个0.(例如求2008!未尾0的个数:2008/5+2008/25+2008/125+2008/625=500或2008/5+401/5+80/5+16/5=500)
#include "stdio.h" /*包含标准输入输出文件*/
void main() /*主函数*/
{
int fun(int x); /*声明fun函数,此函数用于求N!未尾0的个数*/
float jc(int x); /*声明jc函数,此函数用于求N!*/
int n,i;
float k;
printf("type in the n!\n"); /*输出提示信息*/
scanf("%d",&n); /*输入一个整数N*/
i=fun (n); /*求N!未尾0的个数*/
k=jc (n); /*求N!*/
printf("%d!is %10.0f\nthere are %d zero!\n",n,k,i); /*输出结果*/
}
int fun(int x)/*定义fun函数*/
{
int i=0;
while(x!=0)/*请参照求2008!未尾0的个数仔细理解此while循环*/
{
x=x/5;
i+=x;
}
return (i); /*返回N!未尾0的个数*/
}
float jc(int x)/*定义jc函数*/
{
float i;
if (x==0||x==1)/*0!=1、1!=1此为递归调用的出口*/
i=1;
else
i=jc(x-1)*x;/*递归调用jc函数(执行N!=(N-1)!*N)*/
return (i); /*返回N!*/
}
不懂的话,多看看C语言入门书籍!
输入一个自然数n,求n!,同时统计结果中有多少个0程序分析解释
vb,输入一个自然数n,求n!同时统计结果中有多少个0
输入一个自然数n,求n!,同时统计结果中有多少个0.
c++编程:输入一个自然数n,求 ,同时统计结果中有多少个0.
VB 编写程序,请用户输入一个自然数N,求前N个质数,并将其存放一个数组中
VB 编写程序,请用户输入一个自然数N,求前N个质数,并将其存放一个数组中.
pascal 读入n及n个整数,统计n个整数中有多少个素数,把结果输出到屏幕.注意:n
输入一个正整数n,再输入n个学生的成绩,计算平均数,并统计不及格成绩的学生人数?程序怎么设计
C语言 输入一个自然数N 求第N个素数是多少
编写一个统计前100个自然数的和的程序,结果存放在RESULT单元中.
编写程序验证:任何一个自然数n立方都等于n个连续奇数之和.要求对每个输入的自然数计算并输出相应连续奇数
C语言 输入一个正整数n,再输入n个整数,输出最小值.下面写了2个程序,请帮我分析下各错在什么地方.