算法起步(1)

三角形问题(C++)
今日格言:编程第一步逐渐养成计算机思维
有n(n>3)个棍子,第i个棍子长度为ai,随意挑选三根,要求组成三角形,组成的周长最大,若无法组成三角形,则输出为0;
这是一道正常的数学题
作为一个正常的学生,第一次想到的自然是勾股定理,但对于计算机实现而言,它的实现呢(仅仅是代码思路,如需编译,可自行调试)
    int n,a[MAX_N];
    void solve(){
    int ans = 0;
    for(i = 0;i<n;i++){
    for(j=i+1;j<n;j++){
    for(k=j+1;k<n;k++){
    len = a[i]+a[j]+a[k];
    这里运用了max函数来确定最长的一边
    int ma = max(a[i],max(a[j],a[k]));
    rest = len - ma;
    **if(rest > ma){
        if(len>ans){
            ans = len;
            }
    }**这里是自己的思路,但是可以简化:
    if(rest>ma){
        ans = max(ans,len)
    }
    }
    }
    }
    printf"%d/n",ans);
    }

    推荐两个好玩的代码游戏
    codecombat中国
    (通过玩游戏学习代码知识,支持lua,coffeescript,JavaScript)]
    (http://jingyan.baidu.com/article/77b8dc7fe684026175eab65e.html)
    codeTank
     CodeTank(代码坦克)是由 腾讯 AlloyTeam
     和 HTML5 梦工场联合出品的在线坦克仿真游戏平台,
     是面向Javascript程序员的编程游戏!]


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值