给三个int,判断是否可构成三角形算法
哎,今天跟同事讨论算法,有一个女生给我出了这样一个题目,bool Test(int a,int b,int c)感觉很简单,实际呢?自己考虑的不够全面。在得到了提示之后呢,也还是找不到很好的解决方案。我是有多菜已经懒得再提了,只是今天遇到了,不能保证以后不会遇到。对于我这种脑袋很简单的童鞋,只能在积累中逐渐成长了。短期内,遇到什么算法题,自己先思考,然后呢,看看别人的最优解跟自己的差距。不能光有嘴把式,还要有真把式,我要求自己,再简单的算法,也都必须自己实现一下,看一遍记不住,就看一百遍,背也要背下来。其实算法不是很适合我这种菜鸟的,逻辑能力也不行,高数也不行,那什么又是我擅长的呢?也许我现在不行是因为看的算法太少呢?跟写文章一样,肚子里有东西自然可以出口成章啦~我还是很乐观的,我还是很感动于我在知乎上看到的那句话。
“说好了写一辈子代码,少一天少一分钟少一秒都不算一辈子。”
好,下面给出代码:
class TestTriangle
{
public static bool isTri(int a, int b, int c)
{
if (a > 0 && b > 0 && c > 0)
{
if ((a > c-b && Math.Abs(a - b) < c) || (c > a-b && Math.Abs(c - b) < a) || (a> b-c && Math.Abs(a - c) < b))
{
return true;
}
else return false;
}
else return false;
}
}
class program
{
static void Main()
{
while (true) {
Console.WriteLine("Please input the first edge:");
int a = Int32.Parse(Console.ReadLine());
Console.WriteLine("Please input the Second edge:");
int b = Int32.Parse(Console.ReadLine());
Console.WriteLine("Please input the third edge:");
int c = Int32.Parse(Console.ReadLine());
Console.WriteLine(TestTriangle.isTri(a, b, c));
}
}
}
话说为什么不能判断a+b>c,因为一旦a和b等于了Int32.MaxValue,那他们的和不就overflow了么?这是关键。但是我却没有想到。
加油!去学习C#了!
给三个int,判断是否可构成三角形算法的更多相关文章
- 使用基础知识完成java小作业?强化练习-1.输入数组计算最大值-2.输出数组反向打印-3.求数组平均值与总和-4.键盘输两int,并求总和-5.键盘输三个int,并求最值;
完成几个小代码练习?让自己更加强大?学习新知识回顾一下基础? 1.输入数组计算最大值 2.输出数组反向打印 3.求数组平均值与总和 4.键盘输两int,并求总和 5.键盘输三个int,并求最值 /* ...
- hrbustoj 1142:围困(计算几何基础题,判断点是否在三角形内)
围困 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 360(138 users) Total Accepted: 157(12 ...
- C 语言实例 - 判断三边能否构成三角形
原理: 要判断输入的三条边能否够成三角形,只需满足条件两边之和大于第三边即可. #include<stdio.h> int main() { printf("请输入三个边长:\n ...
- a,b为2个整型变量,在不引入第三个变量的前提下写一个算法实现 a与b的值互换
package com.Summer_0424.cn; /** * @author Summer * a,b为2个整型变量,在不引入第三个变量的前提下写一个算法实现 a与b的值互换? */ publi ...
- 【TOJ 3005】Triangle(判断点是否在三角形内+卡精度)
描述 Given the coordinates of the vertices of a triangle,And a point. You just need to judge whether t ...
- C++进阶 STL(3) 第三天 函数对象适配器、常用遍历算法、常用排序算法、常用算数生成算法、常用集合算法、 distance_逆序遍历_修改容器元素
01昨天课程回顾 02函数对象适配器 函数适配器是用来让一个函数对象表现出另外一种类型的函数对象的特征.因为,许多情况下,我们所持有的函数对象或普通函数的参数个数或是返回值类型并不是我们想要的,这时候 ...
- 判断Java对象存活的算法、垃圾回收算法
判断Java对象存活的算法 一.引用计数算法 给对象添加一个引用计数器,每当一个地方引用它的时候就将计数器加1,当引用失效的时候就将计数器减1,任何时刻计数器为0的对象都不可再被使用.这种算法虽然简单 ...
- Atitti 文本分类 以及 垃圾邮件 判断原理 以及贝叶斯算法的应用解决方案
Atitti 文本分类 以及 垃圾邮件 判断原理 以及贝叶斯算法的应用解决方案 1.1. 七.什么是贝叶斯过滤器?1 1.2. 八.建立历史资料库2 1.3. 十.联合概率的计算3 1.4. 十一. ...
- 第三十六个知识点:Index Calculus算法
第三十六个知识点:Index Calculus算法 我们这篇博客继续描述一种数学攻击,这种数学攻击被叫做Index Calculus(IC)算法. 注意这里Index Calculus算法没有找到合适 ...
随机推荐
- delphi 创建DBASE和FOXPRO两类DBF数据文件的差异
delphi 创建DBASE和FOXPRO两类DBF数据文件的差异,主要有几点: 1.创建方法不同 DBASE的创建方法: Self.Table1.Close; Self.Table1.Active ...
- Lazarus中TScreen类使用介绍
描述:虚拟屏幕(桌面)可以包含多个物理显示器.Screen对象是鼠标指针.字体.窗体. 对于Delphi兼容的(不可见)DataModules也被列出了. 同时也追踪当前活动窗体窗体.控件和指针. S ...
- ubuntu如何开启root,如何启用Ubuntu中root帐号
jingyan.baidu.com/article/495ba84116104238b20ede62.html ubuntu如何开启root,如何启用Ubuntu中root帐号 | 浏览:8344 | ...
- 低功耗蓝牙BLE [学习笔记]
手机设备会区分 "connecting" and "pairing" ,前者可以自动连接,后者则需要请求.BLE不再有pairing的麻烦,能直接连上目标设备, ...
- 毕老师的Editplus
简介 EditPlus是一款由韩国 Sangil Kim (ES-Computing)出品的小巧但是功能强大的可处理文本.HTML和程序语言的Windows编辑器,你甚至可以通过设置用户工具将其作为C ...
- ArcGIS Engine开发之旅09--几何对象和空间参考
原文:ArcGIS Engine开发之旅09--几何对象和空间参考 1.Geometry Geometry 是 GIS 中使用最为广泛的对象集之一,用户在创建.删除.编辑和进行地理分析的时候,就是处 ...
- SSH原理与运用(二):远程操作与端口转发
SSH原理与运用(二):远程操作与端口转发 作者:阮一峰 (Image credit: Tony Narlock) 七.远程操作 SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作. 上一 ...
- Selenium2学习-026-WebUI自动化实战实例-024-获取页面元素
非常简单的方法封装,就不啰嗦了,直接上码咯 ^_^ /** * Get element. It will be return null when there is not such element. ...
- vs vim 插件
需要在visual studio安装vim插件,由于在visual studio联机失败,只能手动下载安装. 转载自以下链接: http://blog.csdn.net/lingtianyulong/ ...
- miaov- 自动生成正V反V大于号V小于号V楼梯等图案
1. 核心:控制 数量的长度-1-i的位置,是放在left上还是top上?是放在前面还是后面! <!DOCTYPE html> <html lang="en"&g ...