路过的兄弟帮一下~~ 在线等你们的消息~~
初学者,不是很懂!帮一下忙~~
!编写一个自定义函数,求N!,N值可以从屏幕输入,将计算结果在屏幕上输出.
注意:要在函数main()中调用自定义的函数~
谢谢~~~
[解决办法]
#include <stdio.h>
long jc(int n)
{long a=1;
if(n==1||n==0) return 1;
if(n> 1) a=n*jc(n-1);
return a;
}
main()
{long s;
int n;
printf( "Enter you number: ");
scanf( "%d ",&n);
s=jc(n);
printf( "the result is:%ld ",s);
getchar();
getchar();
}
[解决办法]
#include <iostream>
#include <string>
using namespace std;
int data[20];
void mul(int num)
{
int j;
int carry,tmp;
carry = 0;
tmp = 0;
for(j=0;j <=20 && data[j]==0;j++)
;
for(int i=20;i> =j;i--)
{
tmp = data[i]*num+carry;
carry = 0;
if(tmp> =10)
{
carry=tmp/10;
tmp%=10;
}
else
{
carry = 0;
}
data[i]=tmp;
}
while(carry)
{
j--;
int tp=carry%10;
carry/=10;
data[j]=tp;
}
}
void cal(int n)
{
for(int i=1;i <=n;i++)
{
mul(i);
}
}
void output(void)
{
int i;
for(i=0;(data[i]==0) && (i <=20);i++)
;
if(i==20)
{
cout < <data[i];
}
else
for(;i <=20;i++)
{
cout < <data[i];
}
cout < <endl;
}
int main()
{
int n;
while(cin> > n)
{
for(int i=0;i <20;i++)
{
data[i] = 0;
}
data[20]=1;
cal(n);
output();
cout < <endl;
}
return 0;
}