java stream实现勾股定理

public class RangeTest {
	public static void main(String[] args) {
		Stream<int[]> pythagoreanTriples = IntStream.rangeClosed(1, 100)
                .boxed()
				.flatMap(
				        a -> IntStream.rangeClosed(a, 100)
                                .filter(b -> Math.sqrt(a * a + b * b) % 1 == 0)
                                .mapToObj(b -> new int[]{a, b, (int) Math.sqrt(a * a + b * b)}));

     pythagoreanTriples.limit(5)
             .forEach(t->System.out.println("t1="+t[0]+",t2="+t[1]+",t3="+t[2]));

     System.out.println("==================");

     Stream<double[]> p2=IntStream.rangeClosed(1,100)
             .boxed()
             .flatMap(a->
                     IntStream.rangeClosed(1,100)
                             .mapToObj(b->new double[]{a,b,Math.sqrt(a*a+b*b)})
                             .filter(t->t[2]%1==0));

     p2.limit(5).forEach(
             t->System.out.println("t1="+t[0]+",t2="+t[1]+",t3="+t[2])
     );

	}
	
}

执行之后的结果:

t1=3,t2=4,t3=5
t1=5,t2=12,t3=13
t1=6,t2=8,t3=10
t1=7,t2=24,t3=25
t1=8,t2=15,t3=17
==================
t1=3.0,t2=4.0,t3=5.0
t1=4.0,t2=3.0,t3=5.0
t1=5.0,t2=12.0,t3=13.0
t1=6.0,t2=8.0,t3=10.0
t1=7.0,t2=24.0,t3=25.0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值