`
bmqnc
  • 浏览: 123607 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

我发现我的代码就像小孩子写的

 
阅读更多
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.对公式中的计算采用部分计算,尽量避免除法运算,因为除法经常精度上会出问题,而这题的本质并不是精确的计算出三角形的面积或边,只是根据一定的条件能判断出三点是否符合一定的性质即可,太厉害了!

之前还傻傻的计算面积什么的,完全没必要,不过上面这种判断是否是直角,锐角或钝角三角形的方法实在是绕了很多步,我也是用公式推出来的,咋一看还真看不出来这个代码写了什么意思。

现在终于明白了为什么要大量的阅读优秀程序员的代码。。。。。。。可能我理解的还不够深入,如果没有阅读其他优秀程序员的代码,自己的代码风格和水平始终在那里得不到提高,阅读代码是一种艺术,也是一种享受和提高。。。
分享到:
评论

相关推荐

    flutter ,教3岁女儿写代码,做flutter 游戏app,flutter就是这么好玩!

    一个偶然的机会,我发现我写代码的时候,她很好奇。打开Android Stuido,她就会很好奇的问这问那,而且喜欢“敲敲代码”,当然不是真的敲,是手在瞎点,感受着代码带来的变化。。。现在是彻底玩会了电脑断网时,...

    skiping:跳绳计数小程序源代码

    跳过跳绳计数小程序源代码最近一次,小孩子上小学了,每天下课作业里面有一项是1分钟跳绳。作为家长陪跳计数,同时提醒同时计数总容易忘记,所以萌生了写一个小程序辅助的想法。功能很简单,就是倒计时然后记录跳绳...

    精易模块[源码] V5.15

    15、改善“普通填表类-就绪判断_源码关键字”添加区分大小写参数。 MD5: 3C01272B9E2DAFDEF08D20C191E3C265 精易模块 V5.12 what’s new:(20150108) 1、删除“IP_取外网IP”与 网页_取外网IP()功能重复命令,...

    C#串口介绍以及简单串口通信程序设计和实现

    你要是细心的话,你会发现,目前家用国网智能电能表就具备RS485通信总线(串行总线的一种)与RS232可以相互转化(当然一般,非专业的谁也不会闲的蛋疼,趴电表上瞎看,最多也就看看走了多少度电) RS232 DB9介绍: 1...

    DirectX高级动画制作 电子书+源代码

    DX进阶书 【内容简介】 本书是通往高级程序设计的桥梁,其中并不涉及初学者的内容,完全从实战...在他写的书籍和相关程序中,你可以发现Jim 积极地参与了互联网中顶级的DirectX 论坛,网址是Http://www.GameDev.net 。

    功能强大类似QQ截屏的软件

    到网上查找截屏发现基本都是一些小孩子的初级玩意,功能强大一点的又没有源代码所以自己花了三四天时间写了一个能达到工业使用质量级别的截图控件。功能有: 1、截屏 2、窗体自动识别 3、截图信息提示 4、放大镜 5、...

    PrimarySchoolMathematics-master.zip

    为了让辛苦的程序员老爹解放抄题的双手,本程序让你拥有更多的时间去写代码而不用去手写几道口算题而劳神伤脑。所以有或没有娃子的程序员老爹们一起来继续优化个开源小程序的?有什么点子,发现什么BUG,欢迎提出...

    mvp+rxjava+Retrofit.zip

    对于很多Android初学者可能会有这样的经历,写代码的时候,不管三七二十一都往Activity中写,当然我当初也是这么干的,根本就没有什么框架的概念,只要能实现某一个功能就很开心了,没有管这么多。当然项目比较小还...

    小学数学口算题是一款利用Python开发了一套自动生成小学生口算题的小应用.rar

    孩子上小学一年级了,加减乘除的口算就要开始练习了,估计老师肯定会让家长出题,所以提前准备一下,利用Python开发了一套自动生成小学生口算题的小应用。而且今天是程序员节,撸200行代码庆祝一下。:) 程序核心...

    利用JavaScrip开发了一套自动生成小学生口算题的小应用

    为了让辛苦的程序员老爹解放抄题的双手,本程序让你拥有更多的时间去写代码而不用去手写几道口算题而劳神伤脑。所以有或没有娃子的程序员老爹们一起来继续优化个开源小程序的?有什么点子,发现什么BUG,欢迎提出...

    PERL语言编程

    Larry 希望 Perl 社区像一小片天堂那样运转,目前看来他的愿望基本上是实现了。我们也请你为此做出自己的努力。 &lt;br/&gt;不管你是想拯救地球,还是觉得新鲜,或是你老板命令你学习,这本书都将告诉你一些基本的和...

    智能玩具,寓教于乐,和孩子一起DIY,漂亮音乐盒设计!-电路方案

    先上个成品图(孩子还给画了上一曲,下一曲以及显示屏的图标,虽然有点丑,但是不想打击孩子的积极性,挺萌的哈),micropython代码是我写的,显示屏的图形是孩子拖拽的,一起动手把开发板在盒子里面固定,数据线...

    程序员为什么还要刷题-keyframes.js:一个功能性动画库

    从前有一个程序员,他很小的时候就发现了道的方法,并一直追随着他们,知道他永远不会达到完美,因为只有编程之道才是完美的,但他也知道道路本身就是奖励。 那个程序员经常需要一个动画库,但可惜的是,每个动画库...

    pico-8-work:只是PICO-8的另一个收藏品

    /show我写的所有东西的好收藏。PICO-8有用的资源对于所有在那里的pico八度仪。 这是我发现有用的一些页面。学习链接有用/很酷的链接,以及为什么 。 有时可能有点过时,但确实不错。 。 非常好。 有很多细节。 。 ...

    卖萌神器!根据声音做表情的点阵LED-电路方案

    我买的那个是用MAX7219驱动,看了一下作者的程序试着改成芯片驱动的,改到一半不会了,问了一下作者用MAX7219的程序怎么写,第二天作者回复我了,现在任何一款Arduino都可以做了,还留了许多引脚方便以后添加新功能...

    学生网络安全.docx

    4、 不要随便打开陌生人的邮件附件,因为它可能是一般恶意 html或者 javascript代码(已经发现html代码可以格式化你的硬盘),如果是可执行文件, 可能是后门工具。 5、 在支持javascript或者HTML的聊天室里最好...

    【RT-Thread作品秀】温湿度监测设计-电路方案

    比赛感悟一直想要自己写一个LVGL,但是白天需要上班,晚上带孩子,没有时间搞,借助这次比赛给自己压力,每天晚上加班总算把LVGL入门了。 RT-Thread是一款很方便移植的RTOS,仅需要一个中断来驱动就好,方便移植。...

    精易编程助手3.3+精易模块v6.3.1

    1、增加“系统_取网卡信息”,引用【@剩下我de孩子气 】开源,感谢【@鲁凯啸 】推荐 2、增加“程序_内存中运行EXE”,引用【@易语言我吃了 】开源; 3、增加“网页_更改IE版本”,最高支持本地IE浏览器最高版本; 二...

Global site tag (gtag.js) - Google Analytics