[英]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.