java实现,如何在当前时间往后推N天

调用 getAfterDay 传入后推的天数,就能获取到当前时间往后推N天的时间

    public static Date asDate(LocalDateTime localDateTime) {
        return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
    }

    public static Date getAfterDay(int afterDay) {
        LocalDateTime localDateTime = LocalDateTime.now().plusDays(afterDay);
        return asDate(localDateTime);
    }
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是使用Java代码实现第n个丑数的方法: ```java public int nthUglyNumber(int n) { int[] dp = new int[n]; dp[0] = 1; int index2 = 0, index3 = 0, index5 = 0; int factor2 = 2, factor3 = 3, factor5 = 5; for (int i = 1; i < n; i++) { int min = Math.min(Math.min(factor2, factor3), factor5); dp[i] = min; if (factor2 == min) { index2++; factor2 = 2 * dp[index2]; } if (factor3 == min) { index3++; factor3 = 3 * dp[index3]; } if (factor5 == min) { index5++; factor5 = 5 * dp[index5]; } } return dp[n - 1]; } ``` 在此解决方案中,使用一个数组dp来存储前n个丑数,dp[0] = 1,即第一个丑数是1。同时,使用三个指针(index2、index3和index5)来跟踪乘以2、3和5得到下一个丑数的位置。因为丑数的因子只包括2、3和5,所以每个丑数都是由之前的某个丑数乘以2、3或5得到的。因此,每次需要选择最小的乘数并将其添加到dp数组中。随着添加的丑数增加,需要更新指针和乘数。最后,返回dp数组的最后一个元素即可得到第n个丑数。 ### 回答2: 要实现求第n个丑数的功能,可以使用动态规划的思想。首先定义一个大小为n的数组uglyNums用于存储丑数,uglyNums[0]默认为1,表示第一个丑数。 然后需要定义三个指针p2、p3和p5,用于记录当前uglyNums数组中2、3和5倍数的位置,初始时都指向uglyNums[0]。 接下来,使用循环从1开始遍历到n-1,每次迭代都选择uglyNums[p2]乘以2、uglyNums[p3]乘以3,和uglyNums[p5]乘以5中的最小值作为下一个丑数,更新uglyNums[i]的值,并将对应指针往后移动一位。 最后,返回uglyNums[n-1]即为第n个丑数。 下面是用Java代码实现的例子: ```java public class UglyNumber { public static int getNthUglyNumber(int n) { if (n <= 0) { return -1; // 无效的输入 } int[] uglyNums = new int[n]; uglyNums[0] = 1; int p2 = 0, p3 = 0, p5 = 0; // 三个指针 for (int i = 1; i < n; i++) { int nextUglyNumber = Math.min(uglyNums[p2] * 2, Math.min(uglyNums[p3] * 3, uglyNums[p5] * 5)); uglyNums[i] = nextUglyNumber; if (nextUglyNumber == uglyNums[p2] * 2) { p2++; } if (nextUglyNumber == uglyNums[p3] * 3) { p3++; } if (nextUglyNumber == uglyNums[p5] * 5) { p5++; } } return uglyNums[n - 1]; } public static void main(String[] args) { int n = 10; int nthUglyNumber = getNthUglyNumber(n); System.out.println("第" + n + "个丑数是:" + nthUglyNumber); } } ``` 以上代码可以通过调用`getNthUglyNumber`方法来获取第n个丑数,并在`main`方法中显示出来。运行此代码,输出结果为`第10个丑数是:12`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值