编写函数求3!+6!+9!+12!+15!+18!+21!。(c语言)
5个回答
展开全部
这道题是求从3-21,差为3的8个数阶乘的和,编写一个求阶乘之和的函数sum(),使用for循环进行阶乘的计算,最终和太大,因此使用科学计数方式表示输出。
程序代码:
#include<stdio.h>
float sum(int n)
{int i,j;
float t,s=0;
for(i=3;i<=n;i=i+3)
{t=1;
for(j=1;j<=i;j++)
t=t*j;
s=s+t;}
return(s);
}
main()
{printf("this sum=%e\n",sum(21));}
运行结果:
扩展资料:
阶乘的计算方法:
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。
亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
展开全部
//VC 6.0下编译运行通过,望尽快采纳。
#include <stdio.h>
#include <string.h>
int Calculate(int aiArray[],int iLen);
int main()
{
int aiArray[] = {3,6,9,12,15,18,21};
int iLen = 0;
int iResult = 0;
iLen = sizeof(aiArray);
iResult = Calculate(aiArray,iLen);
printf("%d", iResult);
return 0;
}
int Calculate(int aiArray[],int iLen)
{
int iResult = 0;
int iTemp = 1;
for (int iLoop1 = 0; iLoop1 < iLen/sizeof(int); iLoop1++)//遍历数组
{
for (int iLoop2 = 1;iLoop2 <=aiArray[iLoop1]; iLoop2++)//挨个求阶
{
iTemp *= iLoop2;
}
iResult += iTemp;//结果累加
iTemp = 1;//清空数组
}
return iResult;
}
#include <stdio.h>
#include <string.h>
int Calculate(int aiArray[],int iLen);
int main()
{
int aiArray[] = {3,6,9,12,15,18,21};
int iLen = 0;
int iResult = 0;
iLen = sizeof(aiArray);
iResult = Calculate(aiArray,iLen);
printf("%d", iResult);
return 0;
}
int Calculate(int aiArray[],int iLen)
{
int iResult = 0;
int iTemp = 1;
for (int iLoop1 = 0; iLoop1 < iLen/sizeof(int); iLoop1++)//遍历数组
{
for (int iLoop2 = 1;iLoop2 <=aiArray[iLoop1]; iLoop2++)//挨个求阶
{
iTemp *= iLoop2;
}
iResult += iTemp;//结果累加
iTemp = 1;//清空数组
}
return iResult;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个也太简单了吧?
int main()
{
int n = 0;//求几的阶乘就是几
double result = 0.0;//存储结果
int i= 0;
printf("请输入要求的数值\n");
scanf("%d",&n);
result = jiecheng(n);
printf("%10.0f\n", result);
}
//阶乘函数----递归
double jiecheng(int n)
{
if (0 == n)
return 1;
else if( 1 == n)
return 1;
else
return n*(jiecheng(n-1)
)
};
int main()
{
int n = 0;//求几的阶乘就是几
double result = 0.0;//存储结果
int i= 0;
printf("请输入要求的数值\n");
scanf("%d",&n);
result = jiecheng(n);
printf("%10.0f\n", result);
}
//阶乘函数----递归
double jiecheng(int n)
{
if (0 == n)
return 1;
else if( 1 == n)
return 1;
else
return n*(jiecheng(n-1)
)
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
static int Getreslut(n)
{
int sum=0;
for(int i=3;i<=n;i++){
if(i%3==0){
int mul=1;
for(int j=1;j<=i;j++){
mul=mul*j;
}
sum+=mul;
}
}
return sum;
}
//调用使用Getreslut(21)
{
int sum=0;
for(int i=3;i<=n;i++){
if(i%3==0){
int mul=1;
for(int j=1;j<=i;j++){
mul=mul*j;
}
sum+=mul;
}
}
return sum;
}
//调用使用Getreslut(21)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{
int sum=0;
for(int i=3;i<=n;i++){
if(i%3==0){
int mul=1;
for(int j=1;j<=i;j++){
mul=mul*j;
}
sum+=mul;
}
}
printtf(".......");
}
{
int sum=0;
for(int i=3;i<=n;i++){
if(i%3==0){
int mul=1;
for(int j=1;j<=i;j++){
mul=mul*j;
}
sum+=mul;
}
}
printtf(".......");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询