社区讨论

大佬们帮帮!第三个测试点超时了。。。(C语音,用realloc动态分配内存)

P5727【深基5.例3】冰雹猜想参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lo1u7265
此快照首次捕获于
2023/10/23 03:03
2 年前
此快照最后确认于
2023/11/03 03:35
2 年前
查看原帖
C
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n,i=1,j;
    int* a=NULL;
    scanf("%d",&n);
    j=n;
    while (n!=1) {
        a=(int* )realloc(a,(i+1)*sizeof(int));
        a[0]=j;
        if (n%2==0) {
            a[i]=n/2;
        } else {
            a[i]=n*3+1;
        }
        n=a[i];
        i++;
    }
    for (j=i-1;j>-1;j--) {
        printf("%d ",a[j]);
    }
    free(a);
    return 0;
}
动态分配内存真的不如直接开一个大数组嘛

回复

3 条回复,欢迎继续交流。

正在加载回复...