long s = 0;
for (int i = 0; i < 3; i++) {
s += (x[i] * y[(i + 1) % 3] - y[i] * x[(i + 1) % 3]);
}
if (s == 0) {
out.print("not a triangle");
} else {
long[] l = new long[3];
for (int i = 0; i < 3; i++) {
l[i] = (x[i] - x[(i + 1) % 3]) * (x[i] - x[(i + 1) % 3]) + (y[i] - y[(i + 1) % 3]) * (y[i] - y[(i + 1) % 3]);
}
Arrays.sort(l);
if (l[0] == l[1] || l[1] == l[2]) {
out.print("isosceles ");
} else {
out.print("scalene ");
}
long[] t = new long[3];
for (int i = 0; i < 3; i++) {
t[i] = (x[(i + 1) % 3] - x[i]) * (x[(i - 1 + 3) % 3] - x[i]) + (y[(i + 1) % 3] - y[i]) * (y[(i - 1 + 3) % 3] - y[i]);
}
Arrays.sort(t);
if (t[0] == 0) {
out.print("right");
} else {
if (t[0] < 0) {
out.print("obtuse");
} else {
out.print("acute");
}
}
这是一个判断三角形直角,或者是否是三角形,是否等腰等边的代码,我之前的代码和他们比起来,我就像小孩写的一样。。。。
第一个是根据斜率计算是否是同一三角形
第二个是根据三条边计算公式判断时候等腰等边或者非等腰等边
第三个是根据三角形任意角的cos判断是否是直角,锐角或钝角三角形,
这个程序厉害的地方在于:
1.for循环用得很巧
2.对公式中的计算采用部分计算,尽量避免除法运算,因为除法经常精度上会出问题,而这题的本质并不是精确的计算出三角形的面积或边,只是根据一定的条件能判断出三点是否符合一定的性质即可,太厉害了!
之前还傻傻的计算面积什么的,完全没必要,不过上面这种判断是否是直角,锐角或钝角三角形的方法实在是绕了很多步,我也是用公式推出来的,咋一看还真看不出来这个代码写了什么意思。
现在终于明白了为什么要大量的阅读优秀程序员的代码。。。。。。。可能我理解的还不够深入,如果没有阅读其他优秀程序员的代码,自己的代码风格和水平始终在那里得不到提高,阅读代码是一种艺术,也是一种享受和提高。。。
分享到:
相关推荐
一个偶然的机会,我发现我写代码的时候,她很好奇。打开Android Stuido,她就会很好奇的问这问那,而且喜欢“敲敲代码”,当然不是真的敲,是手在瞎点,感受着代码带来的变化。。。现在是彻底玩会了电脑断网时,...
跳过跳绳计数小程序源代码最近一次,小孩子上小学了,每天下课作业里面有一项是1分钟跳绳。作为家长陪跳计数,同时提醒同时计数总容易忘记,所以萌生了写一个小程序辅助的想法。功能很简单,就是倒计时然后记录跳绳...
你要是细心的话,你会发现,目前家用国网智能电能表就具备RS485通信总线(串行总线的一种)与RS232可以相互转化(当然一般,非专业的谁也不会闲的蛋疼,趴电表上瞎看,最多也就看看走了多少度电) RS232 DB9介绍: 1...
15、改善“普通填表类-就绪判断_源码关键字”添加区分大小写参数。 MD5: 3C01272B9E2DAFDEF08D20C191E3C265 精易模块 V5.12 what’s new:(20150108) 1、删除“IP_取外网IP”与 网页_取外网IP()功能重复命令,...
DX进阶书 【内容简介】 本书是通往高级程序设计的桥梁,其中并不涉及初学者的内容,完全从实战...在他写的书籍和相关程序中,你可以发现Jim 积极地参与了互联网中顶级的DirectX 论坛,网址是Http://www.GameDev.net 。
到网上查找截屏发现基本都是一些小孩子的初级玩意,功能强大一点的又没有源代码所以自己花了三四天时间写了一个能达到工业使用质量级别的截图控件。功能有: 1、截屏 2、窗体自动识别 3、截图信息提示 4、放大镜 5、...
为了让辛苦的程序员老爹解放抄题的双手,本程序让你拥有更多的时间去写代码而不用去手写几道口算题而劳神伤脑。所以有或没有娃子的程序员老爹们一起来继续优化个开源小程序的?有什么点子,发现什么BUG,欢迎提出...
然而,当我们深入挖掘时会发现,许多IT行业所倡导的核心技能和思维模式,其实在我们的基础教育阶段就已经开始培养。《8*世界地图引出的发现》这篇小学四年级的语文导学案,虽然是一份基础教育的教学材料,却在不经意...
对于很多Android初学者可能会有这样的经历,写代码的时候,不管三七二十一都往Activity中写,当然我当初也是这么干的,根本就没有什么框架的概念,只要能实现某一个功能就很开心了,没有管这么多。当然项目比较小还...
孩子上小学一年级了,加减乘除的口算就要开始练习了,估计老师肯定会让家长出题,所以提前准备一下,利用Python开发了一套自动生成小学生口算题的小应用。而且今天是程序员节,撸200行代码庆祝一下。:) 程序核心...
他将杂志上的代码输入计算机,过程中他发现,如果自己改变一些代码,游戏就会变化或崩溃。于是通过不断地实践,他从 8 岁就制作出了人生中的第一个文字冒险游戏,即必须输入正确的句子才能进入下一个房间。 Elon ...
7. **贪心算法--糖果问题**:这个可能涉及到分配糖果的问题,如每个孩子都希望得到比前一个孩子更多的糖果,通过贪心策略来尽可能满足这一条件。 8. **回溯法--骑士走马问题**:在国际象棋棋盘上,骑士如何访问所有...
这种实际操作的过程,让孩子们理解到编程不仅仅是写代码,更是实现想法、创新思维的工具。 此外,编程猫的教师团队专业且富有耐心。他们不仅在技术上给予指导,更在学习方法和思维模式上引导孩子们。在线互动课堂...
为了让辛苦的程序员老爹解放抄题的双手,本程序让你拥有更多的时间去写代码而不用去手写几道口算题而劳神伤脑。所以有或没有娃子的程序员老爹们一起来继续优化个开源小程序的?有什么点子,发现什么BUG,欢迎提出...
Larry 希望 Perl 社区像一小片天堂那样运转,目前看来他的愿望基本上是实现了。我们也请你为此做出自己的努力。 <br/>不管你是想拯救地球,还是觉得新鲜,或是你老板命令你学习,这本书都将告诉你一些基本的和...
先上个成品图(孩子还给画了上一曲,下一曲以及显示屏的图标,虽然有点丑,但是不想打击孩子的积极性,挺萌的哈),micropython代码是我写的,显示屏的图形是孩子拖拽的,一起动手把开发板在盒子里面固定,数据线...
冒泡排序是一种简单的排序算法,其基本概念是通过重复遍历待排序的数列,依次比较相邻的两个数,如果顺序错误就交换它们的位置,从而使得较大的数逐渐“冒泡”至数列的顶端,就像水中的气泡最终会上浮到水面一样。...
从前有一个程序员,他很小的时候就发现了道的方法,并一直追随着他们,知道他永远不会达到完美,因为只有编程之道才是完美的,但他也知道道路本身就是奖励。 那个程序员经常需要一个动画库,但可惜的是,每个动画库...
/show我写的所有东西的好收藏。PICO-8有用的资源对于所有在那里的pico八度仪。 这是我发现有用的一些页面。学习链接有用/很酷的链接,以及为什么 。 有时可能有点过时,但确实不错。 。 非常好。 有很多细节。 。 ...
乘法算式,就像是一串奇妙的代码,其中“2”和“4”是关键的数字,它们是乘数,代表着参与乘法运算的两个数字。“×”则是乘法的标志,是指挥棒,引导着数字之间发生神奇的变化。而“8”是最终的结果,是乘法的产物...