java stream实现勾股定理

x33g5p2x  于2021-11-22 转载在 Java  
字(1.0k)|赞(0)|评价(0)|浏览(579)
  1. public class RangeTest {
  2. public static void main(String[] args) {
  3. Stream<int[]> pythagoreanTriples = IntStream.rangeClosed(1, 100)
  4. .boxed()
  5. .flatMap(
  6. a -> IntStream.rangeClosed(a, 100)
  7. .filter(b -> Math.sqrt(a * a + b * b) % 1 == 0)
  8. .mapToObj(b -> new int[]{a, b, (int) Math.sqrt(a * a + b * b)}));
  9. pythagoreanTriples.limit(5)
  10. .forEach(t->System.out.println("t1="+t[0]+",t2="+t[1]+",t3="+t[2]));
  11. System.out.println("==================");
  12. Stream<double[]> p2=IntStream.rangeClosed(1,100)
  13. .boxed()
  14. .flatMap(a->
  15. IntStream.rangeClosed(1,100)
  16. .mapToObj(b->new double[]{a,b,Math.sqrt(a*a+b*b)})
  17. .filter(t->t[2]%1==0));
  18. p2.limit(5).forEach(
  19. t->System.out.println("t1="+t[0]+",t2="+t[1]+",t3="+t[2])
  20. );
  21. }
  22. }

执行之后的结果:

  1. t1=3,t2=4,t3=5
  2. t1=5,t2=12,t3=13
  3. t1=6,t2=8,t3=10
  4. t1=7,t2=24,t3=25
  5. t1=8,t2=15,t3=17
  6. ==================
  7. t1=3.0,t2=4.0,t3=5.0
  8. t1=4.0,t2=3.0,t3=5.0
  9. t1=5.0,t2=12.0,t3=13.0
  10. t1=6.0,t2=8.0,t3=10.0
  11. t1=7.0,t2=24.0,t3=25.0

相关文章

最新文章

更多