拆分正整数 编程实现: 给定一个正整数 n,将 n 拆成一组各不相同的正整数,使得这组正整数的个数大于等于 2 且总和为 n。 请计算有多少种不同的拆法;如果不能按要求拆分,输出 0。 注意:几种拆法中,如果包含的整数完全相同,仅顺序不同,则视为同一种拆法。例如:{1, 2, 3}、{2, 1, 3} 和 {3, 2, 1} 被视为同一种拆法。 例如:n = 6;满足要求的拆法有以下 3 种: 第一种:{1, 5}; 第二种:{2, 4}; 第三种:{1, 2, 3}。 输入描述: 输入一个正整数 n(1≤正整数≤90)。 输出描述: 输出一个整数,表示有多少种拆法满足要求。 样例输入: 6 样例输出: 3
正确答案:参考程序(Python):正整数拆成各不相同的正整数≥2个。dp[j]=用若干不同整数凑j的方案数(01背包),需≥2个。答案=dp[n]减去单个=n自身的1种。样例6→3。核心:不同整数拆分计数。
试卷来源:202409(第15届)蓝桥杯Python编程青少组(选拔赛_中/高级)真题