解决问题

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,所以这种写法与第一种写法比较起来计算机少执行很多步,所以执行起来更快。由此可知,完成相同的功能,算法不一样则效果就不一样。对计算机而言当然是执行得越快越好。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐