解决问题
for 和 if 的嵌套使用。求 1 到 100 之间所有能被 3 整除的数之和。
代码实现
# include <stdio.h>
int main(void)
{
int i;
int sum = 0;
for (i=3; i<100; i+=3)
{
sum = sum +i;
}
printf("sum = %d\n", sum);
return 0;
}
输出结果:
sum = 1683
知识拓展:如果不用 if,这个程序能不能写出来?
当然能,能被 3 整除的数肯定是 3 的倍数,只要 i 每次自加 3 就行了。我们将这个程序写一下:
# include <stdio.h>
int main(void)
{
int i;
int sum = 0;
for (i=3; i<100; i+=3)
{
sum = sum +i;
}
printf("sum = %d\n", sum);
return 0;
}
知识点解析
因为 ++i 每次只加 1,而 i+=3 每次加 3,所以这种写法与第一种写法比较起来计算机少执行很多步,所以执行起来更快。由此可知,完成相同的功能,算法不一样则效果就不一样。对计算机而言当然是执行得越快越好。