10-整数划分
对于一个正整数n的划分,就是把n变成一系列正整数之和的表达式。注意,分划与顺序无关,例如6=5+1.跟6=1+5是同一种分划,另外,这个整数本身也是一种分划。
例如:对于正整数n=5,可以划分为:
1+1+1+1+1
1+1+1+2
1+1+3
1+2+2
2+3
1+4
5
输入描述
输入一个正整数n
输出描述
输出n整数划分的总数k
输入样例
5
输出样例
7
import java.util.Scanner;
public class code10_IntegerDivision{
public static void main(String[] args) {
int n;
int result;
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
result = f(n,n);
System.out.println(result);
}
public static int f(int a,int max) {
if(a == 1||max ==1)
return 1;
if(a == max)
return f(a,max-1)+1;
if(a > max)
return f(a,max-1)+f(a-max,max);
if(a < max)
return f(a,a);
else return 0;
}
}