C++ 家谱最小辈分算法:动态规划实现
该程序使用了动态规划的思想,通过递归地求解每个人的辈分,并记录下来,最终找到整个家族中最小的辈分。\n\n程序中使用了两个数组,f数组和a数组,分别用来存储每个人的父/母编号和辈分。\n\nf数组的下标表示家族成员的编号,数组的值表示该成员的父/母编号。家族成员的编号从1到N,其中老祖宗的父/母编号为-1。\n\na数组的下标表示家族成员的编号,数组的值表示该成员的辈分。初始化a数组为0。\n\n程序首先读取家族人口总数N,并根据N初始化f数组和a数组。\n\n接下来,程序读取N个编号,将其存储到f数组中。\n\n然后,程序通过find函数递归地求解每个人的辈分,并将结果存储到a数组中。\n\n最后,程序找到a数组中的最大值,即为家族中最小的辈分,将其输出。\n\n然后,程序遍历a数组,找到辈分等于最小辈分的成员编号,并按递增顺序输出。\n\n最终,程序输出了最小的辈分以及辈分最小的成员的编号。\n\n该程序没有涉及文件操作或数据库操作,只是通过数组进行数据存储和计算。\n\n```
原文地址: https://www.cveoy.top/t/topic/qxW0 著作权归作者所有。请勿转载和采集!