簡體   English   中英

JAVA:使用IntStream計算0到100之間所有數字的冪

[英]JAVA: Calculating the power of all numbers between 0 and 100 with IntStream

我需要計算0到100之間所有數字的冪,然后使用IntStream打印它們。 這是我得到的,但是不起作用。 我了解為什么它不起作用,但是我找不到解決方案。

IntStream.iterate(0, i -> i * i + 1).limit(100).forEach(System.out::println);

由於您的問題不清楚,因此我做出了兩個假設。

我需要計算0到100之間所有數字的冪

根據您的示例代碼,我假設您的意思是您要計算0到100之間的每個數字的平方

我假設您想要的輸出看起來像...

0

1個

4

9

16

...

10000

如果是這樣,那么我建議兩件事。 首先,將您的iterate替換為range 其次,使用map將值映射到其平方。

IntStream.rangeClosed(0,100).map(x -> x * x).forEach(System.out::println);

我們正在做什么:

對於每個整數x∈[0,100]:打印x * x。

就像上面的評論中提到的那樣,我不知道確切要查找的是什么冪,什么不起作用,但這是使用IntStream的一種方法,它使用您使用的(i * i + 1)方法獲取所有數字的冪:

IntStream.rangeClosed(0, 100).map(i -> i * i + 1);

希望有幫助:)

如果必須使用IntStream.iterate,則可以嘗試類似IntStream.iterate(1, i -> (int)Math.pow(Math.sqrt(i)+1, 2)).limit(100).forEach(System.out::println); 效率不高,但可以滿足您的需求。 如果您想要一個優雅的解決方案,請嘗試其他答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM