当前位置 博文首页 > 谢哥哥的博客:【Java算法】编写一个算法,计算 1+2+3-4+5+6-7+8

    谢哥哥的博客:【Java算法】编写一个算法,计算 1+2+3-4+5+6-7+8

    作者:[db:作者] 时间:2021-07-13 13:16

    解题思路:可以看出题目中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);
    

    总结

    如果觉得不错,可以点赞+收藏或者关注下博主。感谢阅读!

    cs