解题思路:  深度优先搜索,用1和2两种瓷砖去一一试探,当面积小于要求时深搜

注意事项:  当满足条件后记得加return;   这是递归的出口! 

参考代码:

#include<iostream>
 using namespace std;
 int n,count=0;
  void dfs(int area){
  if(area>n)  return;  //面积大于要求的 也得返回 
  if(area==n){
  count++; return; //满足条件得返回 
  }
   //开始铺砖  1和2两种砖 一一尝试! 
   int i;
   for(i=1;i<=2;i++){
     if(area<n){  //面积达不到要求才深搜 
       dfs(area+i);  //面积的递增
     }
   } 
  }
 int main(){
  cin>>n;
  dfs(0); //初始面积为0
  cout<<count;
 return 0; }


 

0.0分

2 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区