经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 其他 » 职业生涯 » 查看文章
迅雷2019秋招后台开发编程题题解
来源:cnblogs  作者:武培轩  时间:2018/9/25 19:23:53  对本文有异议

红黑积木求和

题目描述

有红黑两种颜色的方块积木,红色代表正数A,黑色代表负数B。选出17块积木排成一排,使得任意相邻7块积木之和都小于0。如何挑选才能使17块积木之和最大,最大值是多少?

输入

正数A,负数B

A和B绝对值小于10000

输出

积木之和的最大值

样例输入

  1. 10 -61

样例输出

  1. 28

思路

  1. 17个木块可以分为7 7 3
  2. 找到和为负数的最多正数的情况
  3. 保证2的情况下,使最后的 3 个正数最多。

代码实现

  1. package xunlei;
  2. import java.util.Scanner;
  3. /**
  4. * 有红黑两种颜色的方块积木,红色代表正数A,黑色代表负数B。选出17块积木排成一排,使得任意相邻7块积木之和都小于0。如何挑选才能使17块积木之和最大,最大值是多少?
  5. */
  6. public class Main {
  7. public static void main(String[] args) {
  8. Scanner sc = new Scanner(System.in);
  9. int a = sc.nextInt();
  10. int b = sc.nextInt();
  11. int i;
  12. for (i = 1; i <= 7; i++) {
  13. if (b * i + a * (7 - i) < 0) {
  14. break;
  15. }
  16. }
  17. int res;
  18. if ((7 - i) < 3) {
  19. res = (7 - i) * a + (3 - (7 - i)) * b + (b * i + a * (7 - i)) * 2;
  20. } else {
  21. res = 3 * a + (b * i + a * (7 - i)) * 2;
  22. }
  23. System.out.println(res);
  24. }
  25. }

计算勾股数

题目描述

勾股数,是由三个正整数组成的数组;能符合勾股定理 a * a + b * b = c * c , (a, b, c) 的正整数解。如果 (a, b, c) 是勾股数,它们的正整数倍数,也是勾股数。如果 (a, b, c) 互质,它们就称为素勾股数。给定正整数N,计算出小于或等于N的素勾股数个数。(0 < a <= b <= c <= N)

输入

正整数N

输出

小于或等于N的素勾股数个数

(0 < a <= b <= c <= N)

样例输入

  1. 10

样例输出

  1. 1

思路

勾股的另种写法是 a = m * m - n * n ,b = 2 * m * n, c = m * m + n * n ,那么a * a + b * b = c * c,那么只要保证m和n互质,并且m和n至少有一个是偶数,那么a,b,c的最大公因数是1,a,b,c互质。

代码实现

  1. package xunlei;
  2. import java.util.Scanner;
  3. public class Main2 {
  4. public static void main(String[] args) {
  5. Scanner sc = new Scanner(System.in);
  6. long N = sc.nextLong();
  7. int m = (int) Math.floor(Math.sqrt(N));
  8. int res = 0;
  9. for (int i = 1; i < m + 1; i++) {
  10. for (int j = i + 1; j < m + 1; j += 2) {
  11. long c = j * j + i * i;
  12. if (c <= N && gcd(j, i) == 1) {
  13. res++;
  14. } else if (c > N) {
  15. break;
  16. }
  17. }
  18. }
  19. System.out.println(res);
  20. }
  21. private static int gcd(int x, int y) {
  22. return (x % y != 0) ? gcd(y, x % y) : y;
  23. }
  24. }
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号