whats the frequency of the letter е in:
q: попарное суммирование рядом стоящих чисел необходимо с использованием множества просуммировать рядом стоящие числа в первый проход, затем в следующий проход взять результат первого и просуммировать попарно стоящие числа и т.д. до тех пор пока не останется одно число. с первым проходом всё понятно, но вот как сделать чтобы в последующие проходы всё суммировалось. что имею:
public class main {

    public static void main(string[] args) {

        treeset<integer> treeset1 = new treeset<>();
        writerandominset(10, treeset1);
        system.out.println(firstsummation(treeset1));


    }
    public static treeset<integer> writerandominset(int n, treeset<integer> treeset){
        for (int i = 0; i < n; i++){
            treeset.add((int) (math.random() * 20));
        }
        system.out.println(treeset);
        return treeset;
    }
    public static treeset<integer> firstsummation(treeset<integer> treeset){
        treeset<integer> sumtree = new treeset<>();
        iterator<integer> iterator = treeset.iterator();
        while (iterator.hasnext()){
            int val = iterator.next();
            if (treeset.higher(val) != null){
                int endval = treeset.higher(val) + val;
                sumtree.add(endval);
                iterator.next();
            }
        }
        return sumtree;
    }
}


a: можно присвоить назад в treeset1 результат firstsummation и продолжать, пока не получится множество из одного элемента:
public static void main(string[] args) {
    treeset<integer> treeset1 = new treeset<>();
    writerandominset(10, treeset1);
    while(treeset1.size() > 1) {
        treeset1 = firstsummation(treeset1);
        system.out.println(treeset1);
    }
}

реализация firstsummation у вас немного странная. эффективнее будет просто брать у итератора два значения подряд:
public static treeset<integer> firstsummation(treeset<integer> treeset) {
    treeset<integer> sumtree = new treeset<>();
    iterator<integer> iterator = treeset.iterator();
    while (iterator.hasnext()) {
        int val1 = iterator.next();
        if (iterator.hasnext()) {
            int val2 = iterator.next();
            sumtree.add(val1+val2);
        }
    }
    return sumtree;
}

заметьте, что и в моей реализации, и в вашей, если на входе множество с нечётным числом элементов, то последний будет проигнорирован.

user
The text includes forty-seven "е"s in total.
assistant