四道C语言函数题,谢谢了

来源:百度知道 编辑:UC知道 时间:2024/06/03 04:44:53
1. 编写程序求下式的值:S=2^1*1!+2^2*2!+……+2^n*n!(n<10)(^表示乘方),要求不使用数学函数而采用如下方法:先编写两个函数分别求解2^n 和n!,再编写求解S的函数,求解过程中调用前两个函数。最后在主函数中输入n,调用求解S的函数完成任务。
2. 求这样一个三位数,该三位数等于其每位数字的阶乘之和。
即: abc = a! + b! + c!
3. 编写程序,实现比较两个分数的大小。
4. 编制一个计算函数y=f(x)的值程序,其中:
-x + 2.5 0<= x <2
y= 2 - 1.5(x-3)*(x-3) 2<= x <4
x/2 - 1.5 4<= x <6

题1:
#include<stdio.h>
long Mult_square(int n)
{
int i;
long m;
m=1;
for(i=1;i<=n;i++)
{
m=m*2;
}
return m;
}
long rank_multiply(int n)
{
int i;
long R=1;
for(i=1;i<=n;i++)
{
R=R*i;
}
return R;
}
long sum(int n)
{
int i;
long s=0;
for(i=1;i<=n;i++)
{
s=s+Mult_square(i)*rank_multiply(i);
}
return s;
}
int main()
{
int n;
printf("Please input n:\n");
scanf("%d",&n);
if(n>9) printf("%d is too big,Please input a more small number:\n",n);
else printf("S=2^1*1!+2^2*2!+……+2^%d*%d!\n =%d\n",n,n,sum(n));
return 0;
}
题2:
#include<stdio.h>
int rank_multiply(int n)
{
int i;
long R=1;
for(i=1;i<=n;i++)
{
R=R*i;
}
return R