0分,help。

P2386 放苹果

我修改了下你的代码,有这几个问题 1. 不是$n$==0啊,题目都说了 n至少大于0了,改成$n$==1 1.输出后要endl,换行 AC代码~ ```cpp #include<bits/stdc++.h> #define int long long using namespace std; int t,m,n; int dfs(int m,int n){ if(m==1 or m==0 or n==1) return 1; if(m<n) return dfs(m,m); else return dfs(m-n,n)+dfs(m,n-1); } signed main(){ cin>>t; for(int i=1;i<=t;i++){ cin>>m>>n; cout<<dfs(m,n)<<endl; } return 0; } /* m个苹果,n个盘子 1.m < n,盘子数等于苹果数: 1.1 return (m,m); 2.m ≠n,盘子数不等于苹果数: 2.1 每个盘子都放苹果 2.1.1 m>n 苹果数大于盘子数 return (m,n)=2.1.3+2.1.4=(m-n,n)+(m,n-1); 2.1.2 m<n 苹果数小于盘子数 回到(1.) = return (m,m); 2.1.3 自由苹果=m-n,return (m-n,n); 2.1.4 自由空盘=n-m,return (m,n-1); */ ``` ~~壶关~~
by hexuchen @ 2023-07-12 22:28:17


|