一道小题,╮(╯▽╰)╭
#include <stdio.h> /*jie cheng * * 1 + 2! + 3! + ... + N! * * */ int factorial(int val) { if(val > 1) { //printf("val %d ",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 : "); scanf("%d",&val); int ret = 0; do { ret = ret + factorial(val); }while(--val);//不是val--,多谢 garbageMan提醒,虽然结果相同,意义却不同,对i-- --i需要注意! printf(" ret %d ",ret); return 0; }
文中只是提供了一个思想而已,实际使用中是需要做一些处理的,比如缓冲区的大小等。