扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#include stdio.hint main()
创新互联公司是一家专注于做网站、成都做网站与策划设计,龙井网站建设哪家好?创新互联公司做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:龙井等地区。龙井做网站价格咨询:18982081108
{
int i,p=1;
for(i=1;i=10;i++)
p*=i;
printf("10以内的数累乘结果是:%d\n",p);
return 0;
}
#include "stdio.h"
void main()
{int i,t;
i=1;t=2;
for(;i = 5;++i){
i=i+1,t=t*i;
}
printf("%d",t);
}
累乘的前提你需要是不断的循环,这样才能不断的去增加
你声明的sum函数是没有参数的,你调用时,又给他了参数,所以报sum函数参数调用错误
另外,你的函数实现也有问题,修改一下:
#include "stdio.h"
int pl(int n);
int sum(int n);
void main()
{
int x,y,z,m;
scanf("%d",m)
x=pl(m);
y=sum(m);
printf("x=%d\n",x);
printf("y=%d\n",y);
}
int pl(int n)//求1*2*3*4*..*n
{
if(n==1)
return 1;
else
return pl(n-1)*n;
}
int sum(int n) //求1+2+3+...+n
{
if(n==1)
return 1;
else
return sum(n-1)+n;
}
计算10!,可以通过简单的递归函数实现,主要代码如下,
#include stdio.h
long fact(int n) //递归函数求解阶乘
{
if(n0)//输入数据检测
{
printf("输入数据n应=0!\n");
return -1;
}
if(n=1) //0!=1,1!=1
return 1;
else
return (n*fact(n-1)); //递归调用
}
int main(int argc, char *argv[])
{
printf("10!=%ld\n",fact(10));//打印10!
return 0;
}
c语言中,函数Func(Type a,……)直接或间接调用函数自身,则该函数称为递归函数。递归函数必须满足两个条件,
1、每一次调用函数自身都更接近于解;
2、函数 必须有一个明确的终止处理或计算的准则,比如本例中0!=1,1!=1。
累加累乘,呵呵,很简单的。
首先,就是定义一个变量(a=0)来保存结果,另定义一个变量(b)实现数值的变化。把数值变化的那个变量(b)的值每次和保存结果的变量(a)进行运算,结果赋给a.比如1——10的累加,就是先把1赋给a,之后b变成2,和a相加结果给a。如此反复就是累+。乘法一样
你的这个程序是在单片机上运行的吧?
应该是你的这个类型int的长度是16位(处理器是16位)。
这样int的范围(-32768 ~ 32767), 第八次运算, 5040 * 8 = 40320 32767.
所以在系统中存储的是补码。
40320 1001 1101 1000 0000
1110 0010 0111 1111 (反码,符号位不变,其他位取反)
1110 0010 1000 0000 (补码, 反码加1)
1110 0010 1000 0000 经计算, = - 110 0010 1000 0000.
即 -25216。
把int 改成long或者long long试一试。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流