标题:请教一个入门类的简单问题
只看楼主
shiryaku
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-11-4
结帖率:100%
已结贴  问题点数:20 回复次数:2 
请教一个入门类的简单问题
刚开始学,问题可能有点简单。。。
我想抽取20以内组成三角形的边长,下面是书上的代码
public class test5{
    public static void main(String[] args){
        int a,b,c,n;
        n=20;
        System.out.println("a\tb\tc");
        for(a=1;a<=n;a++){
            for(b=1;b<=a;b++){
                for(c=b;c<=a;c++){
                    if (a*a==b*b+c*c)
                    System.out.println(a+"\t"+b+"\t"+c);
                }
            }
        }
    }   
}
我想问问,第3个for句处,为什么要写成c=b,就可以把重复的都去掉,我之前自己做的时候写的是b=1,结果出来一大堆重复的比如543和534。。。
这是为什么?
c=b是什么意思?
还望告知~~~
搜索更多相关主题的帖子: public 三角形 
2015-11-04 06:01
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
得分:20 
c=b可以保证c>=b,5 4 3中c=3,b=4,这种组合会被过滤掉,后面同理
如果c从1开始循环
5 4 3
10 8 6
...
都是满足条件的


2015-11-04 12:21
shiryaku
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-11-4
得分:0 
原来如此,明白了。
多谢!!!
2015-11-04 13:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-458859-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.932660 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved