NTUE-CS102 板


LINE

结果我决定今天写,不然明天又没时间摸鱼发呆念点书(?) 新的学期新的开始,新的JAVA号称语法简便却跟这句话一样多点类别就长的不可思议 反正语言这种东西一回事,能明确表达想讲的东西都是好语言 所以程设就是这样一句 「用脑袋模拟程式运作,用程式模拟脑袋思维。」 by 大神 allenown -- 进入正题,这次的作业叫因数分解...也就是把一个数切成数个质数的乘积 如果完全没有头绪去写,那可以先想「如果要进行因数分解需要些什麽、要做些什麽」 因为要把某数分解为质数乘积,所以首先需要的是 1."有哪些数是质数" 有了质数之後,那再来就对传入的数值进行处理...2."这个数会被那些质数除尽" 进而有 3."这个数会被除几次" 最後,只要照格式输出这个结果就完成题目要求了 当然,这是一种比较去省时间的做法...简化的话在文末会提一下 严格说起来,这个题目最难/最简单都是在 1. 的部分 写出个质数表说简单倒也不简单这样...下页就从 1."有哪些数是质数"继续说明 -- 建质数表方法很多...顾及撰写时间与程式执行速度 在可预知范围的前提下大概是这招最为有效与合理 (?) http://tinyurl.com/29x9nvv int prime[]=new int[]={2,3,5...........}; 不过只讲这招这文倒也写不下去,因为顾及分数,所以手动刻一份表是非常合情合理的 质数的判断很简单 "一个不会被1与自己除尽的数" 因此,不顾及时间,最直觉的方法就是 把这个数一直试除取余数看看 比方说.. for (int i=2;i<input;i++) if (input%i == 0) System.out.println(input+" is a prime number.") 像是这样的直觉爆解法,然後只要把判断出来的质数丢进去阵列放着就是质数表啦 -- 再稍微经过一点数学推论 "能整除一个数的数,一定小於某数开根号" 就可以对这段code小小加速成 for (int i=2;i<Math.sqrt(input);i++) if (input%i == 0) System.out.println(input+" is a prime number.") 再进一步的方法就会是"只用之前判断出是质数的数来除" 以及"减少使用取余数与除法的次数" 不过那堆东西写写出来就能直接抄下去了,这样不太好,至少对我成绩来说(y) 有兴趣的可以拿写一半一类的状况另外来问... 这部分观念就请另外gooooooooogle关键字"质数 筛法"来思考 -- 取得质数表後,就能进入作业本体的部分 一个层面来说,跟前面取质数的做法很接近 反正就是一直拿质数来测试能不能除尽 这部分应该是只提像是 8 = 2^3怎麽解决就好 照理论上脑袋已经建好的流程图来说,最前头是for loop跑质数 以input=8为例 for (int i=0;prime[i]<Math.sqrt(8);i++) if (8%prime[i]==0){ ... } 写到这一步应该要做得出来才对? 不然就得套用一下王老大发言了 -- 除了input,在这里其实还需要另建一个temp变数,就暂时叫tmp好了 tmp = input 在这个if (8%prime[i]==0)里头 事实上是做一个while去尝试这个input可以被现在找到这个质数除几次 我的作法大概会像是 while (tmp %prime[i] ==0){ power++ tmp/=prime[i] } 从此来计算次方数,再利用得到这个次方与底数 就直接能输出现在这个底数共有几次方 System.out.print(prime+"^"+power) 说质数只要取到1000底下,则是因为如果把1000底下所有质数都除过除不尽了 那表示最後剩下的数字"也会是质数" 这样 残余针对一次方不输出/其他格式上的问题就请多利用if做几个处理就能得到完整作业啦 -- 前头说好不建表又能得到作业的好方法(?) 就是利用爆解质数的方法跟最後这段检查次方去直接跑,因为 "如果是合数,一定会先被该合数的质因数除尽" 所以可以在不做建表的前提下,直接得到分解的答案 然而,如果你到作业死线钱还没搞懂,或是还没开始做 我会推荐你聊胜於无的评分标准 2. 可写成两个数的乘积 (+30%) 这就很简单啦...开个foooooooooooooooooor loooooooooooooooooooop 找到哪个数可以把现在这个数除尽,就把除数跟商数print出来就好 这样至少有个程式可以交代你的分数这样 -- 所恐惧的,不是没有知识的大众  所憎恨的,不是深沉幽暗的人心 而是自以为是的思考之声 而是自恃甚高的执法者 所毁灭的,不是温馨和谐的世界 这是我最後的期许,没有愤怒、没有悔恨 而是自欺欺人的梦境 只剩下,浑沌的死亡呼吸                节自 新月神话-弑王者 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 115.43.50.239
1F:推 CaptainWill:强大 10/12 00:17
2F:推 jerry771210:JACA? 10/12 00:52
3F:推 jerry771210:input int a, output "1*"+a XDD 10/12 00:56
4F:推 Arashinoon:新语法 JACA 语法强度跟安邦JOKE语法有得比 10/12 01:00
5F:推 j2612280:楼上洗爹考 10/12 16:55
※ 编辑: game0416 来自: 220.130.128.171 (10/18 15:52)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP