这道问题满足:
- 可以被划分为无数个相同且独立的子问题(考虑用递归)
- 可以找到最简单的解(考虑作为递归的出口)
建议画出递归树来帮助自己理解题意。
#include<stdio.h>
void recur(int n){
if(n==0)
printf("0");
if(n==1)
printf("1");
if(n>=2){
recur(n-2);
recur(n-1);
}
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
recur(n);
printf("\n");
}
return 0;
}