‘壹’ 用c语言编写程序计算1~n的阶乘之和....
错误可能有三个,第一你的main前面没有声明,缺少个int,第二个可能的错误就是没有按照题目的要求进行多股输入,你的代码只是输入一次n就结束程序,第三个是最主要的错误,你的for(j=1;j<=i;j++)
里面每次循环一次就把p赋值为1,如果输入3的话,答案是不是10?1*1+1*1*2+1*2*3=10。如果要这样算的话程序如下:
#include<stdio.h>
int main()
{
int i,j,n;
long p;
long Sn=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{p=1;
for(j=1;j<=i;j++)
{ p=p*j; }
Sn=Sn+p;
}
printf("%ld\n",Sn);
}
‘贰’ C语言求一到n的阶乘之和,n大于1小于等于16。
#include<stdio.h>
intmain(){
__int64fact=1,i,sum=0;
intn;
scanf("%d",&n);
for(i=1;i<=n;++i){
fact*=i;
sum+=fact;
}
printf("sum=%I64d ",sum);
return0;
}
注意类型 必须是8字节的整形 用__int64或者用long long (编译器相关)
‘叁’ 用C语言求1到N的阶层 的累加和
思路:先定义一个函数用来计算一个数的阶乘,在从1到N循环依次就其累加和,最后输出累加和即可。
参考代码:例如求1到3的阶乘累加和。
#include "stdio.h"
int fun(int n){
if(n==1) return 1;
else return n*fun(n-1);
}
#include "math.h"
int main() {
int n,sum=0,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=fun(i);
printf("%d\n",sum);
return 0;
}
/*
运行结果:
3
9
*/
‘肆’ c语言求1到n阶乘的和用递归
1、打开vc6.0,新建一个vc项目,添加头文件,添加一个空的main函数,这里先定义一个用来求阶乘的函数,函数的参数为i,阶乘就是不断的和前面的一个数相乘,这里就是不断和fact函数相乘,之后编写主函数的内容:
‘伍’ 怎样用C语言计算1到10的阶层的和
C语言中实现阶乘的计算可以采用递归或者循环,通常循环用的比较多,循环可以采用while循环和for循环等。
下面以for循环为例实现1-10的阶乘的和的计算,代码如下:
int i,sum=1,S=0;
for(i=1;i<=10;i++)
{
sum=sum*i;
S=S+sum;
}
上述的变量S在运行结束后的结果值即为1-10的阶乘的和。
(5)c语言1到n的阶乘和扩展阅读:
数学函数
所在函数库为math.h、stdio.h、string.h、float.h
int abs(int i) 返回整型参数i的绝对值
double atof(char *nptr) 将字符串nptr转换成浮点数并返回这个浮点数
double atoi(char *nptr) 将字符串nptr转换成整数并返回这个整数
double atol(char *nptr) 将字符串nptr转换成长整数并返回这个整数
char *ecvt(double value,int ndigit,int *decpt,int *sign),将浮点数value转换成字符串并返回该字符串