【问题标题】:looping given max and range循环给定最大值和范围
【发布时间】:2018-11-29 17:30:16
【问题描述】:

给定最大数和范围数,我想打印出以下内容,但要尽可能短。我不知道这是否使用 IntStream 完成。

输入: 最大值 = 36(或任何数字) range = 10(或任何数字)

输出: 0-9 10-19 20-29 30-35

我的代码:

totalItems=35
rangeMax=10
rangeFrom=0
rangeTo=0
while (true) {
    if(totalItems>rangeTo+rangeMax){
        rangeFrom=rangeTo+1;
        rangeTo=rangeTo+rangeMax;
    } else if(totalItems>rangeTo+1){
        rangeFrom=rangeTo+1;
        rangeTo=rangeTo+(totalItems-rangeFrom);
    } else {
        return null;
    }
}

【问题讨论】:

  • 到目前为止您尝试过什么?您的问题目前没有显示任何尝试自行解决问题。
  • 我刚刚编辑了我的代码

标签: java loops for-loop


【解决方案1】:
public static void loopingIssue(Integer totalItems, Integer range) {
    IntStream.range(0, totalItems).filter(i -> i % range == 0)
            .mapToObj(e -> mapToGroup(e, totalItems, range))
            .forEach(System.out::print);
}

public static String mapToGroup(Integer e, Integer totalItems, Integer maxRange) {
    if (e + maxRange >= totalItems) {
        return e + "-" + (totalItems - 1);
    } else {
        return e + "-" + (e + maxRange - 1) + ", ";
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    相关资源
    最近更新 更多