谁帮我做这道TC题目啊?

[复制链接]
查看11 | 回复3 | 2007-4-14 18:36:46 | 显示全部楼层 |阅读模式
MS不能求吧?
回复

使用道具 举报

千问 | 2007-4-14 18:36:46 | 显示全部楼层
问题挺多,正确程序如下:#include long double facto(int x){ if(x==0)return(1); if(x==1)return(1); elsereturn(x*facto(x-1));}main() { int i,n,t=1; double s=0; printf("please input n\n"); scanf("%d",&n); for(i=1;i<=n;i++)s+=facto(i);printf("1+2!+…+%d!=%lf\n",n,s); }
回复

使用道具 举报

千问 | 2007-4-14 18:36:46 | 显示全部楼层
这是我做的,你可以参考一下:main(){int i,n,t=1;long s=0;printf("please input n: \n");scanf("%d",&n);for (i=1;i<=n;i++){ t=i*t;s+=t;}printf("1+2!+3!+...+%d!=%ld\n",n,s);}
回复

使用道具 举报

千问 | 2007-4-14 18:36:46 | 显示全部楼层
8281886正解也可以用两重循环,看着要清楚一些,不过效率就不高了:main(){int i, j, n, s = 0, tmp;printf("please input n\n");scanf("%d",&n);for (i = 1; i <= n; i++){tmp = 1;for(j = 1; j <= i; j++)tmp *= j;s=s + tmp;}printf("1+2!+3!+...+%d!=%d\n", n, s);}如果按照你原来的程序,首先你要定义变量t并初始化t为1,其次,把t*=n改为t*=i。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行