没用过VB,不清楚语法有什么差别。这里用了C++\C,你只要搞清思路就成了。
下面是使用递归函数求n!的函数
int fun(int n)
{
if(n==1)return(1);
else
return(fun(n-1)*n);
}
你调用函数时,例如要求8!,你就用fun(8);要注意,int整型数据的范围限制,使得这个函数只能求到12!,如果要更大范围要改用long int ,甚至自定义一个数据保存这个数。
求S=1!+2!+……+8!:
int sum=0,i;
for(i=0;i<8;i++)
{
sum+=fun(i+1);
}
下面是一个完整的C++/C程序例子
#include
using namespace std;
//如果是C,上面两行换成#include"stdio.h",下面cout改printf
int fun(int n);
int main()
{
int sum=0,i;
for(i=0;i<8;i++) //求S=1!+2!+……+8!
{
sum+=fun(i+1);
}
cout<
}
//下面是使用递归函数求n!
int fun(int n)
{
if(n==1)
return(1);
else
return(fun(n-1)*n);
}
没用过VB,不清楚语法有什么差别。这里用了C++\C,你只要搞清思路就成了。
下面是使用递归函数求n!的函数
int
fun(int
n)
{
if(n==1)return(1);
else
return(fun(n-1)*n);
}
你调用函数时,例如要求8!,你就用fun(8);要注意,int整型数据的范围限制,使得这个函数只能求到12!,如果要更大范围要改用long
int
,甚至自定义一个数据保存这个数。
求S=1!+2!+……+8!:
int
sum=0,i;
for(i=0;i<8;i++)
{
sum+=fun(i+1);
}
下面是一个完整的C++/C程序例子
#include
using
namespace
std;
//如果是C,上面两行换成#include"stdio.h",下面cout改printf
int
fun(int
n);
int
main()
{
int
sum=0,i;
for(i=0;i<8;i++)
//求S=1!+2!+……+8!
{
sum+=fun(i+1);
}
cout<
0;
}
//下面是使用递归函数求n!
int
fun(int
n)
{
if(n==1)
return(1);
else
return(fun(n-1)*n);
}
我觉得这个问题和用什么语言没关系,关键是思路。
当然,我也只想给你个思路,具体的实现还要靠你。
嗯,如果是我,我会先写一个方法,用来处理N!的,姑且就叫solvexx(int n)。具体怎么处理,应该很简单,注意要提供参数。你可以用递归来处理。
之后用一个循环加起来就可以了
long tempNum ;
for (int x = 0 ; x < 8 ; x++)
{
tempNum+=solvexx(i);
}
用什么语言编咯