参见了中华英才网的编程大赛,算法题很简单,但还是做的不熟,一道用BigInteger的没有AC

下面是三道题的题目和程序

问题1:求小于n的自然数中,17或者18的倍数和 java

有一点需要注意的是当n>17*18时,17*18只需要算一次

而且k*18>n不一定有k*17>n,所以当k*18>n后,一定要再增加k直到17*k>n

<span style="white-space:pre">  </span>public int mySum(int n) {if (n < 17) {return 0;}int res = 0;int k = 1;while (true) {int tmp1 = k * 17;int tmp2 = k++ * 18;if (tmp2 >= n) {break;}if (tmp1 % 18 != 0) {res += tmp1;}res += tmp2;}while (true) {int tmp1 = k++ * 17;if (tmp1 >= n) {break;}if (tmp1 % 18 != 0) {res += tmp1;}}return res;}

问题2:n*n(n<20)的正方形块,延正方形边从左上角走到右下角,一共有几种方式 java

解答:前几个比较好求n=1:2,n=2:6,n=3:20,n=4:70
可以总结为有从左上到右下一共要走2n步,其中向右或向下有n步,这样就是C2n n
中间结果很容易溢出,这样就用java的BigInteger类,理论上内存有多大,就可以计算多大的算法。
然后把公式写出来很容易发现2n*(2n-1)...*(n+1) 下面的是n*(n-1)*...*2 ,上下肯定有公因子2n,因此就减少了一次大数乘法。

 public long pathcount(int n) {BigInteger res1 = BigInteger.valueOf(1), res2 = BigInteger.valueOf(1);int i;if (n == 1) {return 2;}if (n == 2) {return 6;}for (i = n * 2 - 1; i > n; i--) {res1 = res1.multiply(BigInteger.valueOf(i));}for (i = n - 1; i > 2; i--) {res2 = res2.multiply(BigInteger.valueOf(i));}return res1.divide(res2).longValue();}

问题3:求小n的素数和  java

用到一个公式:一个非素数一定可以分解成几个素数的乘积
这样在求取答案过程中,再维护一个素数的链表,这样可以提高求素数的速度

写博客的时候想到,没必要将素数链表遍历完,只需要遍历到sqrt(n)就可以。

 public int primesSum(int n) {if (n < 2) {return 0;}if (n == 2) {return 2;}List<Integer> primes = new ArrayList<Integer>();primes.add(2);int res = 2;for (int i = 3; i <= n; i += 2) {if (!divisible(i, primes)) {primes.add(i);res += i;}}return res;}private boolean divisible(int n, List<Integer> primes) {for (Integer prime : primes) {if (n % prime == 0) {return true;}}return false;}

首届英才在线编程大赛-编程题回顾-java实现相关推荐

  1. Scratch编程-画图模块13【寿光市青少年创意编程大赛真题】

    上节课带领大家一起做了蓝桥杯scrtch画图题真题, 今天带大家看一下来自2021年9月18日寿光市青少年创意编程大赛画图题真题. 先来看一下题目的要求 准备工作: (1)保留默认小猫角色,隐藏角色; ...

  2. 2021年青海省大学生首届网络安全知识与技能大赛——赛题回顾及基本讲解

    青海省大学生首届网络安全知识与技能大赛

  3. 2021江苏大学生编程大赛I题(省赛试水)

    题目:  问题 - I - 代码强制 (codeforces.com)https://codeforces.com/gym/103495/problem/I题意: 就是给了m,n,从0到2^m-1挑出 ...

  4. 牛客网-腾讯编程校招真题 编码 Java

    题目描述: 假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, - -, ...

  5. 超级码力在线编程大赛初赛 第2场 1.三角魔法

    超级码力在线编程大赛初赛 第2场 1.三角魔法 题目链接 描述 小栖必须在一个三角形中才能施展魔法,现在他知道自己的坐标和三个点的坐标,他想知道他能否施展魔法 −1e9≤xi,yi≤1e9-1e9\l ...

  6. 超级码力在线编程大赛初赛 第2场 题解

    超级码力在线编程大赛初赛 第2场 题解 题目出的对退役老年选手很友好,拿个T恤跑路- 下面的题解仅代表个人观点,出了问题,概不负责. 比赛链接:https://tianchi.aliyun.com/o ...

  7. 英雄会第一届在线编程大赛解题思路

    其实往往看到编程题目,作为一个java程序员,往往觉得语言不占优势,好像写了也没什么机会,我个人觉得其实在快慢效率上,真正的还是思想,大胆写,java有那么好的api,java源代码,好的开源社区,写 ...

  8. 美团点评CodeM编程大赛-题二

    美团点评CodeM编程大赛-题二 题目描述 组委会正在为美团点评CodeM大赛的决赛设计新赛制. 比赛有 n 个人参加(其中 n 为2的幂),每个参赛者根据资格赛和预赛.复赛的成绩,会有不同的积分.比 ...

  9. 超级码力在线编程大赛初赛第1场-1-树木规划题解

    目录 题目描述 示例 输入 输出 说明 分析 代码 动规 贪心 其他题目 题目描述 在一条直的马路上,有n棵树,每棵树有一个坐标,代表它们距离马路起点的距离. 如果每相邻的两棵树之间的间隔不小于d,那 ...

最新文章

  1. 安川g7接线端子图_西门子SIWAREX称重模块安装接线注意事项!
  2. 讲mysql执行流程书籍_MySQL 基础架构 1. 一条SQL查询语句的执行过程(个人学习笔记)...
  3. 【BOM精讲】BOM 入门基本常识
  4. wxWidgets的简介
  5. matlab正余弦画心形图案
  6. 7-35 城市间紧急救援 (25 分)(思路加详解)
  7. 在Spring中使用jOOQ:CRUD
  8. 前端学习(2000)vue之电商管理系统电商系统之绘制基本面板的结构
  9. git commit查找提交的关键字
  10. mach内核和linux对比,海思Hi3511/Hi3512 Linux内核与标准内核差异说明
  11. 差分相干解调 matlab,2DPSK差分相干解调器Simulink仿真.doc
  12. Raid5数据恢复原理以及raid5数据恢复成功案例
  13. html和css实现导航条
  14. 小不点浏览器 v1.00 官方
  15. 成都中级职称评定 计算机,成都职称评审
  16. java多态的三种表现形式
  17. ppt倒计时器制作方法
  18. 三维地图之cesium轨迹回放(有代码)
  19. sendgrid java_store-sendgrid-java-how-to-send-email-example | Microsoft Docs
  20. 海克斯康三坐标模块化c语言编程,海克斯康三坐标编程手册_海克斯康三坐标教程...

热门文章

  1. 查看Linux下文件和文件夹大小_莫枫恋_新浪博客
  2. 腾讯云短信服务发送验证码
  3. GRE 词汇3(后缀)
  4. IP2723中文规格书
  5. Android的JSON解析(上)
  6. mac备忘录html,10个高效使用苹果备忘录的方法:iPhone、iPad、Mac
  7. 染成茜色的坂道 圣诞汉化补丁翻译讨论(有点雷)
  8. 区块链游戏对计算机硬件要求,3060显卡挖矿对主板要求
  9. 同创永益携手华为云Stack发布灾备管理联合解决方案
  10. 兴达易控Modbus转Profinet网关将丹佛斯变频器接入西门子1200PLC配置案例