3 回答

TA貢獻1804條經驗 獲得超2個贊
#include <stdio.h>
double fact(int n);
int main(void)
{
int i, m;
double sum;
scanf("%d", &m);
sum=fact(m);
printf("1!+2!+...+%d! = %f\n", m, sum);
}
double fact(int n)
{
float num=0.0;
int total,temp;
total=0;
temp=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
temp*=j;
}
total+=temp;
temp=1;
}
num=(float)total;
return num;
}
祝你順利通過考試!

TA貢獻1811條經驗 獲得超6個贊
用遞歸寫的,比較挫,但是勉強實現了。寫的有點急沒加注釋,不好意思。但是是比較簡單的,可以看懂~
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
double fact(int n)
{
double z=0;
if(n<0)
{
printf("\nCount Error:n=%d<0 ",n);
z=0;
}
else
if(n==0||n==1)
z=1;
else
z=fact(n-1)*n;
return(z);
}
void main()
{
int m=0;
double sum=0.0,temp=0.0;
scanf("%d", &m);
if(m<=0) //m為0或負數,無不需要向下進行
return ;
while(m)
{
temp=fact(m--);
sum+=temp;
}
printf("1!+2!+...+%d! = %f\n", m, sum);
}

TA貢獻1802條經驗 獲得超5個贊
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
double fact(int n)
{
double z=0;
if(n<0)
{
printf("\nCount Error:n=%d<0 ",n);
z=0;
}
else
if(n==0||n==1)
z=1;
else
z=fact(n-1)*n;
return(z);
}
void main()
{
int m=0;
double sum=0.0,temp=0.0;
scanf("%d", &m);
if(m<=0) //m為0或負數,無不需要向下進行
return ;
while(m)
{
temp=fact(m--);
sum+=temp;
}
printf("1!+2!+...+%d! = %f\n", m, sum);
}
- 3 回答
- 0 關注
- 178 瀏覽
添加回答
舉報