奶龙分群?奶牛分群|题解(数学解风格)
2025-06-15 15:57:09
发布于:四川
1阅读
0回复
0点赞
【算法分析】
由题意,
∵不断分群,∴用递归.
又∵“如果这一群奶牛可以精确地分成两部分,这两部分的牛数恰好相差K头,那么在三岔路口牛群就会分裂。否则,牛群不会分裂,她们都将在这里待下去,平静地吃草。 请计算,最终将会有多少群奶牛在平静地吃草。”.
∴结束条件为“n<=k||(n+k)%2”.
故本题核心代码(即递归函数)为:
int ans;
void func(int n,int k){
if(n<=k||(n+k)%2){
if(n>0) ans++;
return ;
}
else func((n+k)/2,k),func((n-k)/2,k);
}
【最终答案】:
#include<bits/stdc++.h>
using namespace std;
int ans;
void func(int n,int k){
if(n<=k||(n+k)%2){
if(n>0) ans++;
return ;
}
else func((n+k)/2,k),func((n-k)/2,k);
}
int main(){
int n,k;
cin >> n >> k;
func(n,k);
cout << ans;
return 0;
}
-
注:本题解仅供参考;独立思考,勿依赖题解。
全部评论 2
《奶龙分群》
13小时前 来自 四川
0666
13小时前 来自 四川
0
有帮助,赞一个