为什么我用c写的回忆录代码不起作用? #包括 #包括 国际备忘录[100];
下面是使用记忆的功能 我试图将redundent递归调用的返回值存储在memo[n]数组的第n个位置为什么我用c写的回忆录代码不起作用? #包括 #包括 国际备忘录[100];,c,recursion,memoization,C,Recursion,Memoization,下面是使用记忆的功能 我试图将redundent递归调用的返回值存储在memo[n]数组的第n个位置 #include <stdio.h> #include<stdlib.h> int memo[100]; int rec(int n){ 如果(n) 我已将memo[]数组的所有值初始化为-1 int rec(int n){ if(n<=2) return 0; if(memo[n]!= -1) retu
#include <stdio.h>
#include<stdlib.h>
int memo[100];
int rec(int n){
如果(n)
我已将memo[]数组的所有值初始化为-1
int rec(int n){
if(n<=2)
return 0;
if(memo[n]!= -1)
return memo[n];
memo[n]= rec(n-2)+(n/2)-1;
printf("%d",memo[n]);
return memo[n];
}
不,您没有。for(inti=0;iYes)的循环,您是对的。现在它已解决。Thanx寻求帮助。
void main(){
int n,t;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
if(n%2!=0)
n=n-1;
for(int i=0;i<n;i++){
memo[i]= -1;
}
printf("\n%d",rec(n));
}
}