您的位置:首页 > 编程语言 > C语言/C++

算法起步(1)

2016-03-13 20:45 363 查看
三角形问题(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程序员的编程游戏!]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 算法起步