题目描述:小Q定义了一种数列称为翻转数列
                 给定整数n和m,满足n能被2m整除。对于一串连续递增整数数列1,2,3,4...,每隔m个符号翻转一次,最初符号为'-'
                例如n=8, m=2,数列就是-1,-2,+3,+4,-5,-6,+7,+8.
                而n=4, m=1,数列就是-1,+2,-3,+4.
                小Q现在希望你能帮他算算前n项和为多少。
输入描述:输入包括两个整数n和m(2 <= n <= 10^9,1 <= m),并且满足n能被2m整除。
输出描述:输出一个整数,表示前n项和。

示例:输入 8 2

输出 8

package com.study;import java.util.Scanner;/**
* @author ZhaoFang
* @date 2018年4月5日 下午4:45:10  (腾讯2018实习招聘笔试编程)
* @describe 翻转数列:小Q定义了一种数列称为翻转数列
*                 给定整数n和m,满足n能被2m整除。对于一串连续递增整数数列1,2,3,4...,每隔m个符号翻转一次,最初符号为'-'。
*                 例如n=8, m=2,数列就是-1,-2,+3,+4,-5,-6,+7,+8.
*                 而n=4, m=1,数列就是-1,+2,-3,+4.
*                 小Q现在希望你能帮他算算前n项和为多少。
*           输入描述:输入包括两个整数n和m(2 <= n <= 10^9,1 <= m),并且满足n能被2m整除。
*           输出描述:输出一个整数,表示前n项和。
*           示例:输入 8 2 输出 8
*/
public class Tencent1 {public static void main(String[] args) {Scanner in = new Scanner(System.in);Tencent1 obj = new Tencent1();while(in.hasNext()) {int n = in.nextInt();int m = in.nextInt();if(n < 2 || n > 1000000000 || m < 1 || n % m*2 != 0) {System.out.println("n, m 不符合要求,请重新输入...");}else {//方法一:先求数列再求和int[] array = obj.FanZhuan(n, m);System.out.println("翻转数列前n项的和为:" + obj.Sum(array));//方法二:直接法System.out.println(obj.DirectSum(n, m));break;}}}/*** 直接求和* @param n* @param m* @return*/public int DirectSum(int n, int m){int sum = 0;int i = 1;boolean flag = false;while(i < n) {if(!flag) {for(int j = 0; j < m; j++) {sum = sum -i - j;}}else {for(int j = 0; j < m; j++) {sum = sum + i + j;}}i += m;flag = !flag;}return sum;}/*** 由题意求得的翻转数列* @param n* @param m* @return*/public int[] FanZhuan(int n, int m) {int[] array = new int[n];int total = n/m; //总共有多少轮int j = 1;for(int i = 0; i < n;) {if(j <= total) {if(IsOdd(j)) {//j为奇数,数列的项为负;j为偶数,数列的项为正array[i] = -(i+1);i++;}else{array[i] = (i+1);i++;}if(i % m == 0) {//若i为m的倍数,则j需加1,数列的项需改变符号j++;}}}return array;}/*** 是否为奇数* @param num* @return 若为奇数,返回true;否则false*/public boolean IsOdd(int num) {boolean flag;if(num % 2 == 0){flag = false;}else {flag = true;}return flag;}   public int Sum(int[] array) {int result = 0;for(int i = 0; i < array.length; i++) {result += array[i];}return result;}}

2018腾讯实习招聘笔试编程题之翻转数列相关推荐

  1. 2018腾讯实习招聘笔试编程题之安排机器

    题目描述:小Q的公司最近接到m个任务,第i个任务需要Xi的时间去完成,难度等级为yi.                 小Q拥有n台机器,每台机器最长工作时间zi,机器等级wi.           ...

  2. 2018年科大讯飞春招笔试编程题

    科大讯飞2018春招的笔试编程题中,第一题是判断蚊子是否在蚊帐中,比较简单,这里不做说明,本文将简单讲解第二题和重点说明第三题的解法. 第二题 1.题目 2.输入输出及样例 3.思路 这题思路很容易想 ...

  3. 京东2016春招(实习)笔试+编程题

    岗位:数据挖掘.机器学习.算法.模式识别 京东这套题出的耗时可以的,难度不是特别大,编程题感觉非常难理解,光看题干就看了老半天,当时简直吓尿了,一琢磨其实很简单.我只能回忆一部分内容,25选择+2编程 ...

  4. 奇虎360_2017校园招聘笔试编程题第一题

    今晚做了360的校招笔试题,编程题难度适中,在这里跟大家分享一下编程题的第一题. 1. 题目 2. 输入输出及样例 3. 我的思路 这题应该看题目理解一下就有思路,最简单粗暴的就是创建一个二维数组in ...

  5. 奇虎360_2017校园招聘笔试编程题第二题

    今晚做了360的校招笔试题,编程题难度适中,在这里跟大家分享一下编程题的第二题.第二道题也不难想到思路,但是如果写法不当,可能无法满足题目的时间限制. 1. 题目 2. 输入输出及样例 3. 我的思路 ...

  6. 商汤科技 2019校园招聘笔试编程题-2018.09.07

    本来阿里和商汤冲突了,就放弃了阿里的劝退型笔试,结果,商汤也劝退,只发一下题目做参考吧!知道题解的同学可以在评论区粘上链接,我会随时更新并加以感谢的.

  7. 滴滴 2019校园招聘笔试编程题-2018.09.18

    输入: slep slap sleep step shoe shop snap slep 输出: slep slap step 代码是交卷后写出来的,没有经过测试,不知道是否能够AC 利用DP求出每个 ...

  8. 科大讯飞2018暑期实习招聘在线编程题:如何分糖果?

    题目描述:小明和小红是好朋友,但最近遇到一个棘手的问题,有一盒糖果要分成两份但是每颗糖果质量都不尽相同,但为了分配的公平每份糖的糖果数量相差不得超过1,在此条件下两份糖果的质量差距尽可能小. 输入:一 ...

  9. 奇虎360 2015校园招聘笔试编程题

    题目一: 写一个函数,根据两文件的绝对路径算出相对路径. 如a="/qihoo/app/a/b/c/d/new.c",b="/qihoo/app/1/2/test.c&q ...

最新文章

  1. js 倒计时 时间戳
  2. 云信技术系列课 | RTC 系统音频弱网对抗技术发展与实践
  3. java学习笔记之条件语句(if...else)
  4. Jfinal源码解析系列一
  5. java在线编辑器_微软开源在线代码编辑器——Monaco Editor
  6. matplotlib绘制平滑曲线
  7. ESP8266 wifi钓鱼
  8. 七月算法机器学习2 数理统计与参数估计1
  9. .NET core ABP 获取远程IP地址
  10. ActivityGroup详解
  11. 【单片机】keil 2032
  12. 振铃效应与样点自适应补偿(Sample Adaptive Offset,SAO)技术
  13. Algorithm Review 5 图论
  14. java计算机毕业设计直播购物平台源码+数据库+系统+lw文档
  15. 鹰眼系统原理_飞思卡尔智能车一:山外鹰眼摄像头使用原理
  16. 如何使用Keras fit和fit_generator(动手教程)
  17. 模仿京东登录页面(HTML、CSS、JavaScript / jQuery)
  18. Docker 命令基础及进阶
  19. 总问南京配眼镜哪里性价比高,不妨看南京眼镜店推荐榜单
  20. 史上最全Apidoc文档生成详解

热门文章

  1. 幼儿抽象逻辑思维举例_孩子嘴巴巧不巧,逻辑思维能力很关键,玩一玩这些游戏有帮助...
  2. Matlab 批量建文件夹
  3. wordpress修改了站点地址导致无法打开网站的解决办法
  4. 信号频域特征提取 Matlab
  5. springsecurity登录后依然跳回登录页面的问题
  6. 网络安全进阶篇(十一章-5)APP渗透测试篇(上)
  7. OJ术语: AC、WA、TLE、OLE、MLE、RE、PE、CE
  8. 用手机画画什么触控笔比较好?性价比高的触控笔推荐
  9. 微信查看共同好友python_微信中怎么查看共同好友?
  10. 秀色天香慢凝眸轻叩首