首页 > 解决方案 > java中的连续长度问题

问题描述

我是新手,希望你能帮助我。老师给我们留了作业,一个计算以下序列的程序:3、5、5、8、7、11、9、14、11、17。为了能够生成它,请使用 2 个不同的序列,然后将它们组合起来. 但是,问题是幸福的长度,是通过键盘输入一个数字来定义的,如果这个数字是偶数,序列就会得到正确的项数,但如果是奇数,我会额外添加一个,这个因此,它添加了一个独立的计数器,以便能够确定用户通过键盘为连续指定的术语数量我怎样才能让它同时适用于偶数和奇数?

附件代码及截图:

    Scanner sc= new Scanner(System.in);
    int n1= 3, n2= 5, rep, count=1;
    System.out.println("enter length");
    rep= sc.nextInt();
    for(int i= 1; i <= rep; i++)
    {
        if(count<= rep)
        System.out.print(n1+ ", " + n2 + ", ");
        n1= n1+2;
        count = count +1;
        n2= n2+3;
        count = count +1;
    }

在此处输入图像描述

标签: java

解决方案


我假设rep是您希望在组合序列中看到的术语数。如果是这样,那么这应该工作:

for(int i=0; i < rep; i++)
{
    if((i % 2) ==0)
    {
      System.out.print(n1);
      n1 = n1+2;
    }
    else
    {
      System.out.print(n2);
      n2 = n2+3;
    }
    if(i+1 < rep) System.out.print(", ");
}

对于代表 == 6

3, 5, 5, 8, 7, 11

对于代表 == 7

3, 5, 5, 8, 7, 11, 9

如果您想花哨,可以使用数组来存储序列:

int[] n = {3, 5};
for(int i=0; i < rep; i++)
{
  System.out.print(n[i % 2]);
  if(i+1 < rep) System.out.print(", ");
  n[i % 2] += 2 + i % 2;
}

推荐阅读