C 1,2,1,3,2,5,3,7,5,11,8,13,13,17... 打印第n个术语
这个数列中的所有奇数项都是斐波那契数列,所有偶数项都是素数,按升序排列C 1,2,1,3,2,5,3,7,5,11,8,13,13,17... 打印第n个术语,c,C,这个数列中的所有奇数项都是斐波那契数列,所有偶数项都是素数,按升序排列 #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 se
#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;
}
#包括
int main()
{
int i,n,k,a[100],next,j,P[151],l1,l2,l;//变量
scanf(“%d”,&n);//按术语输入数字
a[0]=1;
a[2]=1;
/*计算斐波那契级数*/
对于(i=4;i你可以做类似的事情:
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,用素数来填充,
叫它:
a[0]=1;a[2]=1
是故意的,它是2
而不是1
?不清楚你是如何构建序列的。在我看来,排列像1,2,1,3,1,
这样的数字背后的逻辑是什么(如果我正确理解这个问题的话)。你知道如何生成斐波那契序列吗?你知道如何生成素数吗?使用两个函数:一个用于计算素数,另一个用于计算斐波那契数。你可以对预计算的值使用全局变量来保持它的简单性。我想目标是只打印第n项。@Sandeep:来自标题,是的,但整个问题倾向于“交替打印术语”。我们可以用我们想要的术语数量来替换大小,我想这会解决的
intersperse_print(a, P, 100);