gpt4 book ai didi

java - 利息数量

转载 作者:行者123 更新时间:2023-11-30 15:23:44 25 4
gpt4 key购买 nike

这是一个我已经解决的挑战,但是当我提交代码时我得到了零分。当我在本地计算机上运行它时,它似乎会产生正确的输出。我用C和Java解决了这个问题。对于 java,服务器响应 NZEC 错误,其原因也未知。

输入:第一行包含一个数字T,它是测试用例的数量。接下来的 T 行每行包含 3 个整数 XYN,并用一个空格分隔。

输出:对于每个测试用例,打印序列的第 N 个数字。

Constraints:
1) 1 <= T <= 10^6
2) 0 < N <= 50
3) 0 < X < 50
4) 0 <= Y < 3

Sample Input- Sample Output-
1 34
3 2 7

这是我的代码:

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

int main() {
int array[10000], x, y, z, j;
long long int testcase;
scanf("%lld", &testcase);

for (long long int v = 0; v < testcase; v++) {
scanf("%d %d %d", &x, &y, &z);
*array = (int)(calloc ((z + 100), sizeof(int *)));

for (int i = 0; i < z + 100; i++) {
array[i] = 0;
}
for (j = 0; j < x; j++) {
array[j] = y;
}
for (int l = j; l < z; l++) {
array[l] = array[l - 1] + array[l - 2] + array[l - 3];
}
printf("%d ", array[(z - 1)]);
}
return 0;
}

这是我用java编写的代码--

public class TestClass {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long testCases = Long.parseLong(sc.nextLine());
StringBuilder sb = new StringBuilder();
for (long i = 0; i < testCases; i++) {
int x = sc.nextInt();
int y = sc.nextInt();
int z = sc.nextInt();
int array[] = new int[z+1];
long sum = 0;
int j;
for (j = 0; j < x; j++) {
array[j] = y;
}

for (int l = j; l < z; l++) //add for loop in case of greater j values
{
array[l] = array[l - 1] + array[l - 2] + array[l - 3];

}

System.out.println (array[(z-1)] + " ");
}

}


}

最佳答案

将数组声明为int *array;

将其分配为array = calloc(z + 100, sizeof(int *));

在循环结束时使用free(array), array = NULL;释放它

我不知道你的算法是否正确,但是你分配内存的方式是假的,分配的内 stub 本没有被使用,并且计算的大小仅限于10000个整数。如果 T 的值大于 9900,您的代码将表现出未定义的行为。

关于java - 利息数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28663132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com