这次做的题目主要考核数学逻辑思维能力。
第一题、请编写程序,计算出 1000 以内(不包含 1000)的自然数中,属于 3 或 5 的倍数的数字之和。
10 以下的自然数中,属于 3 或 5 的倍数有 3, 5, 6, 9,它们的和是 23。
我的代码:
#include <stdio.h>
int main()
{
int i, sum = 0;
for (i = 1;i < 1000;i++)
{
if( i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
printf("sum = %d\n", sum);
return 0;
}
课程老师的代码:
#include <stdio.h>
int main()
{
int i, sum = 0;
for (i = 0; i < 1000; i++)
{
if (!(i % 3) || !(i % 5))
{
sum += i;
}
}
printf("%d\n", sum);
return 0;
}
运行结果:233168
第二题、请编写程序,找出斐波那契数列中数值不超过 4 百万的项,并计算这些项中值为偶数的项之和。
斐波那契数列中,从第三项开始,每一项被定义为前两项的数字之和。
从 1 和 2 开始,斐波那契数列的前 10 项应该是这样:1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ....
我的代码:
#include <stdio.h>
int main()
{
int b = 1, a = 0, i, sum;
for (i = 1;i < 4000000;i = a + b)
{
if( i % 2 == 0 )
{
sum += i;
}
a = b;
b = i;
}
printf("sum = d\n", sum);
return 0;
}
课程老师的代码:
#include <stdio.h>
int main()
{