当前位置: 首页 > 面试题库 >

找出1000以下3和5的倍数之和

孔俊捷
2023-03-14
问题内容

好的,我正在做Euler项目的挑战,我简直不敢相信我会遇到第一个挑战。尽管我的代码看起来很正常,但我真的看不到为什么我得到错误的答案:

import java.util.ArrayList;


public class Multithree {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        ArrayList<Integer> x = new ArrayList<Integer>();
        ArrayList<Integer> y = new ArrayList<Integer>();
        int totalforthree = 0;
        int totalforfive = 0;

        int total =0;

        for(int temp =0; temp < 1000 ; temp++){
            if(temp % 3 == 0){
                x.add(temp);
                totalforthree += temp;
            }
        }

        for(int temp =0; temp < 1000 ; temp++){
            if(temp % 5 == 0){
                y.add(temp);
                totalforfive += temp;
            }
        }

        total = totalforfive + totalforthree;



        System.out.println("The multiples of 3 or 5 up to 1000 are: " +total);

    }

}

我得到的答案是266333,它说错了…


问题答案:

您应该对两者都使用相同的for循环,以避免重复计算两者的倍数。例如15,30 …

   for(int temp =0; temp < 1000 ; temp++){
        if(temp % 3 == 0){
            x.add(temp);
            totalforthree += temp;
        }else if(temp % 5 == 0){
            y.add(temp);
            totalforfive += temp;
        }
    }


 类似资料:
  • 问题内容: 我已经阅读了Python伪随机手册,据我所知,您只能生成不超过给定最大值(即0-1、0-30、0-1000等)的数字。我想要: a)生成两个整数之间的数字,即5-55,并且 b)仅包括5的倍数(或者更容易以5或0结尾的数字) 我环顾四周,找不到任何可以解释这一点的地方。 问题答案: 在之间创建一个整数随机数,然后将其乘以。简单的数学。 产生例如

  • 我正在尝试实现本文Faster Sieve of Eratosthenes中描述的算法。我很理解这个想法,但我无法理解如何通过python代码实现它。 经过一些工作,我找到了一种将索引从筛子转换为数字本身的方法: 但主要问题是我在获得总理后必须做的跳跃。文章将其解释为: 6np±p,其中p是素数,n是一些自然数。 对于这样一个想法,有没有办法用最后发现的质数的指数来描述跳跃? 提前致谢。 附言。O

  • 我有一个jUnit测试断言两个双重对象与以下: 这很好,然后我决定将其改为使用原语double,结果发现它已被弃用,除非还提供了delta。 所以我想知道的是,在这个assertEquals中使用双对象或原语类型有什么区别?为什么使用没有增量的对象是可以的,但是使用没有增量的原语是不可取的?Java是否在后台做了一些已经考虑了默认增量值的事情? 谢谢

  • 这就是我正在研究的问题:“给定一个整数数组,是否可以选择一个整数组,使得这个组和给定的目标有这些附加的约束条件:数组中所有5的倍数都必须包含在组中。如果紧接在5倍数后面的值是1,就不能选择它。(不需要循环。)” 我尝试了以下操作: 但它只得到5的倍数,我试过: 但它不起作用,因为有时5的倍数不包括在内。 我知道我的代码还没有完成第二个约束。 有什么想法吗?

  • 问题内容: 有人知道我如何将双精度值四舍五入为3个有效数字,例如本网站上的示例 http://www.purplemath.com/modules/rounding2.htm 问题答案:

  • 本文向大家介绍给出以下代码,输出的结果是什么?原因? for(var i=0;i<5;i++) { setTimeout(function(){ console.log(i); },1000); } console.log(i)相关面试题,主要包含被问及给出以下代码,输出的结果是什么?原因? for(var i=0;i<5;i++) { setTimeout(function(){ console