Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 能被1到20的所有数整除的最小正数是多少?_Java - Fatal编程技术网

Java 能被1到20的所有数整除的最小正数是多少?

Java 能被1到20的所有数整除的最小正数是多少?,java,Java,这是我的密码 class Euler5 { public static void main(String args[]) { long i=2520l; int flag= 1; if(flag == 1) { search: for(int j=10;j<=20;j++) { long a=i%j; if(a!=0) { i+=20; break search ; } if(j==20) {

这是我的密码

class Euler5
{
 public static void main(String args[])
 {
 long i=2520l;
 int flag= 1;
 if(flag == 1)
 {
  search:
  for(int j=10;j<=20;j++)
   {
    long a=i%j;
    if(a!=0)
    {
     i+=20;
     break search ;
    }
    if(j==20)
    {
    flag=0;
    }
   }
 }
 System.out.print(i);

   }
 }
类Euler5
{
公共静态void main(字符串参数[])
{
长i=2520l;
int标志=1;
如果(标志==1)
{
搜索:
对于(int j=10;j将
if(flag==1)
替换为
while(flag==1)
。否则您将只在11个值上迭代一次。

if(flag==1)
替换为
while(flag==1)
。否则您将只在11个值上迭代一次。

这是因为:

  • 在第一次迭代之后,您将
    j
    增加
    1
  • 在第二次迭代中,
    i%j
    !=0
  • 在if条件下,您将通过
    20
    递增
    i
    ,从而导致
    i=2540
  • 你打破了那里的循环
  • 因此结果是
    2540
  • 这是因为:

  • 在第一次迭代之后,您将
    j
    增加
    1
  • 在第二次迭代中,
    i%j
    !=0
  • 在if条件下,您将通过
    20
    递增
    i
    ,从而导致
    i=2540
  • 你打破了那里的循环
  • 因此结果是
    2540

  • 这是因为当for循环第二次执行时,
    j
    的值将是
    11
    ,这将导致表达式为
    长a=2520/11

    哪个将
    a的值设置为1
    ,而该值不满足您的if条件,并输入您的if条件

    if(a!=0)
    {
       i+=20;
       break search ;
    }  
    

    之后,它将断开for循环并终止执行,始终输出2540。

    因为当for循环第二次执行时,
    j
    的值将为
    11
    ,这将导致表达式为
    长a=2520/11

    哪个将
    a的值设置为1
    ,而该值不满足您的if条件,并输入您的if条件

    if(a!=0)
    {
       i+=20;
       break search ;
    }  
    

    之后,它将中断for循环并终止执行,始终输出2540。

    您的方法似乎不正确。for必须是1到20,而不是10到20。您应该像Ivaylo Strandjev所说的那样在while循环中运行所有这些。也许一个更简单的解决方案是将2到20个数字除以素数d增加独特因素

    e、 g:

    2 => 1 * 2
    3 => 1 * 3
    4 => 1 * 2 * 2
    5 => 1 * 5
    6 => 1 * 2 * 3
    
    那你就保留一个独一无二的

    1 * 2 => keep both
    1 * 3 => keep only 3
    1 * 2 * 2 => keep only the second 2
    1 * 5 => keep only 5
    1 * 2 * 3 => keep nothing
    
    total 1 * 2 * 3 * 2 * 5 = 60 is the smallest int divisible by 2,3,4,5 and 6
    
    您将找到17907120作为您的解决方案


    我不擅长Java:(

    你的方法似乎不正确。你的for必须是1到20,而不是10到20。正如Ivaylo Strandjev所说,你应该在while循环中运行所有这些。也许一个更简单的解决方案是将2到20个数字除以素数,然后添加唯一的因子

    e、 g:

    2 => 1 * 2
    3 => 1 * 3
    4 => 1 * 2 * 2
    5 => 1 * 5
    6 => 1 * 2 * 3
    
    那你就保留一个独一无二的

    1 * 2 => keep both
    1 * 3 => keep only 3
    1 * 2 * 2 => keep only the second 2
    1 * 5 => keep only 5
    1 * 2 * 3 => keep nothing
    
    total 1 * 2 * 3 * 2 * 5 = 60 is the smallest int divisible by 2,3,4,5 and 6
    
    您将找到17907120作为您的解决方案


    我不擅长Java:(

    Define:“not Working”你是什么意思?你有没有异常?你有没有得到错误的结果?哪一个应该是正确的结果?程序的目的是找到最小的no,它可以被1到20之间的所有no整除。2540不是那个no(选中)。所以我发现if块只运行了一次。很好:“不工作”是什么意思?是否出现异常?是否得到错误的结果?哪一个应该是正确的结果?该程序的目的是找到最小的no,它可以被1到20之间的所有no整除。2540不是no(选中)。因此,我发现if块只在我在回答中已经做过的一次时才运行:
    否则,您将只在11个值上迭代一次。
    尝试调试代码或手动迭代,您将理解我的意思。@user2644549 if语句不是我在回答中已经做过的循环:
    其他e您将只在11个值上迭代一次。
    尝试调试代码或手动迭代代码,您将理解我的意思。@user2644549 if语句不是循环,但也应该返回if循环,然后递增值并检查again@user2644549:否。
    中断
    中断<代码>for
    循环。
    if
    不是循环语句。但是它也应该返回到if循环,然后增加值并进行检查again@user2644549:否。
    break
    为循环中断
    如果
    不是循环语句。