-5

输出应如下所示:

0 1 1 2 3 5 8 13..

..13 8 5 3 2 1 1 0

我想在 java 中使用两个数组,然后在这两个数组上使用 Arrays.tostring() 来打印这两个值,但我仍然无法在一个循环中解决它。除此之外,我尝试以这种方式进行

int main()
{
   int n,j,c;
   int a=0,b=1;
   printf("enter total no of terms:");
   scanf("%d",&n);
   int arr[n];
   arr[0]=a;
   arr[1]=b;

   printf("%d\t %d\t",arr[0],arr[1]);

    for(j=2;j<=((2*n)-1);j++)
    {  
       if(j<=n-1)
       {
          c=a+b;
          arr[j]=c;
          printf("%d\t",arr[j]);
          a=b;
          b=c;
          if(j==n-1)
           printf("\n");

       }
       else
       {  
           arr[j]=b;
           printf("%d\t",arr[j]);
           c=a;
           a=b-a;
           b=c;
       }


    }  

  getch();
} 

这解决了我的问题,但是这个问题有没有更短更有效的方法?

4

1 回答 1

1

从 3 个变量开始,其值为 0、1(int num1 = 0;和 int int num2 = 1;)和 undefined(int num3;)。打印 1 和 2。如果您想要最多 13 个并返回,请执行 12 次循环。在循环内部,检查循环是否已完成 6 次(如果索引从 0 开始,则索引<6)。如果是,则将 num1+num2 的值插入 num3。如果不是,则将 num3 的值插入到 num3 之后,打印 num3 并将 num2 移动到 num1 并将 num3 移动到 num2 ( num1=num2; num2=num3;)

于 2013-08-26T12:58:50.283 回答