当前位置 博文首页 > 谢哥哥的博客:【Java算法】编写一个算法,计算 1+2+3-4+5+6-7+8
解题思路:可以看出题目中4、7、10、1000余3的余数全部为1
,
由此可以得出判断条件:
if(i%3==1) {减} else {加}
, 那开始编写我们的代码:
int count = 0;
for (int i = 1; i <= 1000; i++) {
if (i % 3 == 1) {
count = count - i;
} else {
count = count + i;
}
}
System.out.println("count:" + count);
结果:166166
好像发现一个问题,结果貌似不对!我们打个断点看看。
i=1
的时候余3
的结果是1
,可是我们不需要1
拿去减,而是加,优化后的代码:
int count = 0;
for (int i = 1; i <= 1000; i++) {
if ((i % 3 == 1) && i != 1) {
count = count - i;
} else {
count = count + i;
}
}
System.out.println("count:" + count);
加上了判断条件:i != 1
,结果:166168
正确!
还有一种写法:
int count = 0;
for (int i = 1; i <= 1000; i++) {
if (((i - 1) % 3 == 0) && i > 1) {
count = count - i;
} else {
count = count + i;
}
}
System.out.println("count:" + count);
如果觉得不错,可以点赞+收藏或者关注下博主。感谢阅读!