RT,下面是P1036的一种错误做法
#include <bits/stdc++.h>
using namespace std;
int genSeq(int n){
int result;
if(n==1)
result=1;
else{
int no_more_than_half=n/2;
for(int i=1;i<=no_more_than_half;i++){
result+=genSeq(i);
}
}
return result;
}
int main(){
int n;
cin >> n;
cout << genSeq(n) << endl;
return 0;
}
但我发现居然能过样例,输入6,输出也是6
但是我自己按照这个流程手推了一便,计算出输出值应该是3
调试了一下,genSec(6)在i=3时(此时result=3)执行genSec(3),可是genSec(3)中的result不是0,是2,因此导致了输出6的结果
这是为什么呢?大佬们帮忙看看