求n的阶乘和这道题中,往往先算n的阶乘,然后再将其累加
int n = 10, sum = 0, tmp = 1;
int i = 1;
for (; i <= n; i++){
for (int j = 1; j <= i; j++){
tmp *= j;
}
sum += tmp;
tmp = 1;//必须重置tmp的值。
}
printf("%d\n", sum);
这样虽然能够完成任务,但是每次在累加时都需要重新计算n的阶乘
这样就浪费了时间进行重复的计算,同时也容易忘记重置临时变量tmp的值而出错
代码优化:
int n = 3, sum = 0, tmp = 1;
int j = 1;
for (j = 1; j <= n; j++){
tmp *= j;
sum += tmp;
}
printf("%d\n", sum);
总结:写代码的过程中,除了编写的代码能完成任务,还需要考虑如何让代码更高效。比如,尽可能避免让程序执行重复的操作和计算。