有2中方法可以实现,比如
分配一个较大的数组
int a[10] = {1,2,3,4,5,6,}
int count = 6//记录数组元素的个数
a[6]=7, count++
2. 使用动态分配内存
int *a=(int*)malloc(6*sizeof(int))
// 把6个数组元素的值放入数组,代码略
int a=(int*)realloc(6*sizeof(int))
a[6]=7
首先你所求的数列是一个公差为1的二级等差数列,如下:所求数列:1 2 4 711……
二级数列: 1 2 3 4……
因此解题的方法也就很明确了,第一步就是先求出二级数列,第二步就可以求出目标数列,最后一步把目标数列各项加起来就得到正确结果了。
C代码如下,代码可以求数列的前n项之和,n的值由自己设定,要求10项就键盘输入10就ok了!(n<=100,这个值可以自己改,修改数组定义处的值就ok)
#include "stdio.h"
void main()
{
int a[100],b[100]
int i,n,sum=0
a[0]=1
printf("Please input How many numbers you need to summation?\n")
scanf("%d",&n)
for(i=0i<n-1i++) //长度为n-1的公差为1的数列b
{
b[i]=i+1
}
for(i=0i<n-1i++) //求长度为n的目标数列a
{
a[i+1]=a[i]+b[i]
}
printf("The array is:\n") //输出目标数列a
for(i=0i<ni++)
{
printf("%d ",a[i])
}
printf("\n")
for(i=0i<ni++)//求数列前n项和
{
sum+=a[i]
}
printf("The summation result is:\n%d\n",sum)
}
#include #define COL 10 //一行输出10个 long scan() { //输入求fibonacci函数的第N项 int nprintf("Input the N = ")scanf("%d",&n)return n} long fibonacci(int n) { //fibonacci函数的递归函数 if (0==n||1==n) { //fibonacci函数递归的出口 return 1} else { return fibonacci(n-1)+fibonacci(n-2)//反复递归自身函数直到碰到出口处再返回就能计算出第n项的值 } } int main(void) { int i,nn = scan()printf("Fibonacci数列的前%d项\n", n)for (i=0i