昨天师父给的任务,让写一个多线程计算一个1000以内输入数的阶乘和的小程序。我用C语言来实现,过程都是自己想出来的,中间出过在用循环的时候采用unsigned类型判断出错的问题。
以下是该程序的实现,这里只是先把过程写出来,还没有用到多线程……
利用多线程的实现,我会在月底之前写出来。
以下是执行结果:
[img]http://dl.iteye.com/upload/attachment/0068/6477/6c1a6fe5-6716-38ec-8271-99bbb98acd29.png[/img]
以下是该程序的实现,这里只是先把过程写出来,还没有用到多线程……
// methods.c
#include <stdio.h>
long double Fn(int n);
int main(void)
{
long double sum = 0;
int i, n;
i = n = 0;
printf("Please input a number: \n");
scanf("%d", &n);
if (n > 1000 )
printf("ERROR!The number is too large!\nPlease try again!(0~1000)\n");
else if (n < 0)
printf("ERROR!The number is invalid!\nPlease try again!(0~1000)\n");
else
{
for (i = 0; i <= n; i++)
sum += Fn(i);
printf("The %d factorial's sum is %Lf\n", n, sum);
}
return 0;
}
long double Fn(int n)
{
if (n == 0)
return 1;
return Fn(n - 1) * n;
}
利用多线程的实现,我会在月底之前写出来。
以下是执行结果:
[img]http://dl.iteye.com/upload/attachment/0068/6477/6c1a6fe5-6716-38ec-8271-99bbb98acd29.png[/img]