这是第一个测试框,我可以运行哦!
这是第一个测试框,我可以运行哦!
将一个正整数n表示成一系列的正整数之和:
n=n1+n2+...+n3 (n1>=n2>=...>=nk>=1,k>=1)
public class cool
{
static String s="";
static int num=0;
public static void main(String[] args) {
Scanner str=new Scanner (System.in);
num=str.nextInt();
public class cool
{
static String s="";
static int num=0;
public static void main(String[] args) {
Scanner str=new Scanner (System.in);
num=str.nextInt();
fan(num);
}
public static void fan(int n){
if(n==0){
if(K(s)){
System.out.print(num+"=");
for(int i=0;i<s.length()-1;i++){
fan(num);
}
public static void fan(int n){
if(n==0){
if(K(s)){
System.out.print(num+"=");
for(int i=0;i<s.length()-1;i++){
System.out.print(s.charAt(i)+"+");
}
System.out.print(s.charAt(s.length()-1));
System.out.println();
return ;
}
}
for(int i=1;i<=n;i++){//遍历当前的层的所有树,跳到当前的树的兄弟树
s+=i;
fan(n-i);//遍历当前的树的子树,跳到当前的层的下一层
s=s.substring(0, s.length()-1);//还原当前的树的数据
}
}
public static boolean K(String x){
for(int i=0;i<x.length()-1;i++){//比较x的每个数字是否有序
if(x.charAt(i)>x.charAt(i+1)){
return false;
}
}
return true;
}
}