64,676
社区成员
发帖
与我相关
我的任务
分享
#include "Header.h"
vector<vector<int> > func(int n)
{
vector<vector<int> > groups;
if(n == 1) groups.push_back(vector<int>(1,1));
else
{
for(int i = 1; i != n/2 + 1; ++i)
{
vector<int> comb;
for(int j = i; j != n-i+1; ++j)
{
comb.push_back(i);
for(int k = 0; k != n - i - j; ++k)
comb.push_back(1);
comb.push_back(j);
groups.push_back(comb);
comb.clear();
}
}
}
return groups;
}
package com.test;
import java.util.Scanner;
import java.util.Stack;
import java.util.Vector;
public class MainRun {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt();
Vector<Vector<Integer>> result = new Vector<Vector<Integer>>();
calc(result, input);
for (Vector vec : result) {
for (int i = 0; i < vec.size(); i++)
System.out.print(vec.get(i) + " ");
System.out.println();
}
}
public static void calc(Vector<Vector<Integer>> vec, int n) {
calc_(vec, n, 1, new Stack<Integer>());
}
private static void calc_(Vector<Vector<Integer>> vec, int n, int floor,
Stack<Integer> tmp) {
boolean end = false;
for (int i = 1; i <= n; i++) {
if (i < floor)
continue;
floor = i;
tmp.push(i);
calc_(vec, n - i, floor, tmp);
tmp.pop();
end = true;
}
if (end) {
Vector<Integer> success = new Vector<Integer>();
for (int i = 0; i < tmp.size(); i++)
success.add(tmp.get(i));
success.add(n);
vec.add(success);
}
}
}
def class
puts 'hello word!'
end