本文小编为大家详细介绍“java经典算法实例代码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“java经典算法实例代码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
创新互联主要从事成都网站制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务五华,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
正值金九银十好时节,又到了刷题月。
题目1:
求s = a + aa + aaa + aaaa + aa...a的值,其中a是一个数字。例如2 + 22 + 222 + 2222 + 22222(此时共有5个数相加),几个数相加有键盘控制。
题目2:
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3。编程找出1000以内的所有完数。
找出规律,222 = 22*10+1;2222 = 222*10+2,其实就是后一个数 都在第一个数(start)上加start+10*num,其中num为上一次的叠加数。
看这题,首先要知道一件事,什么是完数,知道完数的算法规则,其实就能很清晰的计算出1000以内符合规则的数字,对吧。
那什么是完数?完数其实就是一个数如果恰好等于它的因子之和,这个数就称为"完数"。比如6,所以所有因子[1,2,3]相加(1+2+3)就等于6.
知道了规则,那其实就成功了百分之八十,因为我之前有讲过求一个数的所有因子。
题1AC代码:
public static int sumNums(int num, int count) { //记录输入的num int start = num; //记录和 int sum = 0; for (int i = 1; i <= count; i++) { sum += num; //计算出下一个数字。 num = start + num * 10; //丢弃最后一个“+”号 if (i == count) { System.out.print(num); } else { System.out.print(num + "+"); } } System.out.println("=" + sum); return sum; }
题2AC代码:
/** * 计算1-1000之内的所有完数 */ public static List<Integer> ws() { //统计完数 List<Integer> list = new ArrayList<>(); //记录一个数的因子之和 int sum; //循环1-1000之内的数 for (int i = 1; i <= 1000; i++) { //判断该数是否为一个完数 sum = 0; for (int j = 1; j < i; j++) { if (i % j == 0) { //叠加因子之和 sum += j; } } //判断是否为完数 if (sum == i) { list.add(i); } } return list; }
读到这里,这篇“java经典算法实例代码分析”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注创新互联行业资讯频道。
当前文章:java经典算法实例代码分析
分享网址:https://www.cdcxhl.com/article16/gjoddg.html
成都网站建设公司_创新互联,为您提供虚拟主机、软件开发、网站改版、网页设计公司、网站内链、网站维护
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联