首页 > 解决方案 > 1,2,1,3,2,5,3,7,5,11,8,13,13,17... 打印第 N 项

问题描述

该系列中的所有奇数项构成斐波那契数列,所有偶数项都是按升序排列的素数。

#include<stdio.h>    

int main()
{
    int i,n,k,a[100],next,j, P[151],l1,l2,l;   //variables
    scanf("%d", &n);      // input the number on terms
    a[0]=1;
    a[2]=1;
    /* Calculaate Fibonacci series */
    for(i=4;i<n;i+=2)
        a[i]=a[i-2]+a[i-4];
    for(i=0;i<n;i+=2)
        printf(" %d",a[i]);
    for (i = 2; i <=n; ++i)
        P[i] = 0;
    for (i = 2; i <=n; ++i )
    {
        if (P[i] ==0)
           //printf (" %i", i);
           printf(" %d",i);
        for (j = 1; j*i <= n; j++)
            P[i*j] = 1;
    }
    return 0;
}

我无法打印系列中显示的条款。如何交替打印条款。

标签: c

解决方案


你可能会做类似的事情:

void intersperse_print(const int* arr1, const int* arr2, int size)
{
    for (int i = 0; i != size; ++i) {
        printf(" %d %d", arr1[i], arr2[i]);
    }
}

因此,一旦您填充a(使用斐波那契数)和P(使用质数),请调用它:

intersperse_print(a, P, 100);

推荐阅读