<一道题>求1 + 2! + 3! + .... + N!

一道小题,╮(╯▽╰)╭

#include <stdio.h>

/*jie cheng
*
* 1 + 2! + 3! + ... + N!
*
*
*/

int factorial(int val)
{
    if(val > 1)
    {    
        //printf("val %d\t",val);
        return val*factorial(val - 1);
    }
    else if(val == 1)
    {
        return 1;
    }    
}


int main(int argc, char **argv)
{
    int val = 0;

    printf("please input your val :\n");

    scanf("%d",&val);

    int ret = 0;

    do
    {
        ret = ret + factorial(val);

    }while(--val);//不是val--,多谢 garbageMan提醒,虽然结果相同,意义却不同,对i-- --i需要注意!

    printf("\nret  %d\n",ret);    

    return 0;
}

 文中只是提供了一个思想而已,实际使用中是需要做一些处理的,比如缓冲区的大小等。

posted on 2013-07-25 15:52  净坛使者  阅读(258)  评论(7编辑  收藏  举报

导航