题目
有ABC三个等级,会根据等级情况确定是否给予绩效奖金。若是连着3个B或者2个C的话就不能得到奖励。
输入:n(表示n个月,n<=12)
输出:得到奖励的方式种类
如:
输入:2
输出:8
具体为:AA AB BA BC CB BB AC CA
分析
这题最终需要得到结果字符串,如果字符串中出现连续2个C或者连着3个B就不能满足条件。字符串的长度是手动输入的,我的思想是采用递归的方式动态生成字符串。每次进入递归的方法时都会对字符串进行合法性判断(这里也就是指对上述条件判断),如果满足条件并且长度为目标长度,则保存这个字符串并结束递归,同样,如果遇到不满足条件的也是需要“剪枝”的。
代码(Java)
import java.util.ArrayList;
import java.util.Scanner;
public class Main{
static ArrayList<String> list = new ArrayList<>();
public static void main(String[] args) {
Scanner sc = ne

这篇博客探讨了如何根据员工等级确定绩效奖金的发放,特别是当连续3个B或2个C出现时将无法获得奖金。博主通过输入月份数n,输出可能的奖金发放方案数量。他们提出了一种基于递归和剪枝策略的解决方案,通过递归动态生成满足条件的字符串,遇到不合法组合时进行剪枝,确保字符串符合规定。文章提供了Java代码实现和测试案例。
最低0.47元/天 解锁文章
2103

被折叠的 条评论
为什么被折叠?



