#include
//求阶乘
long factorial(int n)
{
int i;
long result=1;
for(i=1; i<=n; i++)
{
result *= i;
}
return result;
}
// 求累加的和
long sum(long n)
{
int i;
long result = 0;
for(i=1; i<=n; i++)
{
//嵌套调用
result += factorial(i);
}
return result;
}
int main()
{
printf("1!+2!+...+9!+10! = %ld\n", sum(10));
return 0;
}
result *= i就是result = result * i
就是说result现在的值等于它之前的值乘以i
例如:假设resule现在的值是2,i的值是6
那么执行了result *= i之后result的值就会是12
操作符 *= , +=
a*=b
a=a*b
a+=b
a=a+b
执行效率更高!
就是 result=result*i;
result = result * i;
result = result * i;
类似 + - * / 同理
就是 前边的乘以后边的简写
result = result * i;
这是一种赋值运算=,+=,-=,*=,/=,&=,^=,\=,<<=,>>=
a = 2;<------->a = 2;
a *= 2<------->a = a * 2;
a <<= 2<---->a = a << 2;
.....
result = result * i
result=result*i
result *= i;
//意思是先计算resultxi
//计算完毕后将计算结果保存到变量result中