arrays - 使用一个函数将序列 3Un² + 2Un +1 的前 n 个值存储在数组中

标签 arrays c performance sequence

这是我正在处理的序列:

Un+1 = 3Un² + 2Un + 1
U₀ = 1

我得到的第一个想法是一个停止条件为n != 0的递归函数。 问题是我想将每个项的值存储在同一函数的数组中,以便稍后可以打印

#include <stdio.h>
#include <stdlib.h>

unsigned long long *Sequence(int n, unsigned long long *T) {
    while (n != 0) {
        T[n--] = 3 * (*(Sequence(n - 1, T) + n - 1)) * (*(Sequence(n - 1, T) + n - 1)) +
                 2 * (*(Sequence(n - 1, T) + n - 1)) + 1;
    }
    *T = 1;
    return T;
}

int main() {
    int n;
    printf("Enter your sequence term : ");
    scanf("%d", &n);
    unsigned long long *T = (unsigned long long *)malloc(sizeof(unsigned long long) * (n + 1));
    T = Sequence(n, T);
    //Printing values
    printf("[   ");
    for (int i = 0; i <= n; i++)
        printf("%5llu ", *(T + i));
    printf("   ]");
    
    free(T);
    return 0;
}

由于从序列中获得的数字很大,因此我使用了unsigned long long。 在输出中我输入了术语,但数组没有显示。

最佳答案

#include<stdio.h>
#include<stdlib.h>                                                                             
    
unsigned long long* Sequence(int n){
    unsigned long long* T=(unsigned long long*)malloc(sizeof(unsigned long long)*(n+1));
    if(T==NULL){
    printf("Problem while allocating memory ! ");
    exit(1);
    }
    T[0]=1;
    for(int i=1;i<=n;i++) T[i]=3*T[i-1]*T[i-1]+2*T[i-1]+1;
    return T;
    }

int main(){
    int n ;
    unsigned long long *T;
    printf("Enter your term : ");scanf("%d",&n);
    T=Sequence(n);
    printf("[   ");
    for(int i=0;i<=n;i++) printf("%5llu ",*(T+i));
    printf("   ]");
    free(T);
    return 0;
}

感谢您的帮助,这是解决方案!

关于arrays - 使用一个函数将序列 3Un² + 2Un +1 的前 n 个值存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77634525/

相关文章:

c - 如何存储然后打印二维字符/字符串数组?

c - 打印两个值中的最高值而不使用 if 语句

performance - 美国哪个 Azure 数据中心在网络延迟方面比其他数据中心具有最佳性能

arrays - 使用 cmd 创建一组文件夹 - 设置带有空格的循环变量

javascript - Angularjs 轮询 API 检查 JSON 中的空数组

C: 忽略输入文件中的注释行

java - fork /加入 : optimal threads count

iphone - 关于临时对象的 iOS 内存/性能优化

arrays - rails 强参数不接受散列数组

javascript - Javascript 数组连接操作中有多少个操作?