本文主要是介绍week2腾讯2019 暑期实习提前批笔试——acwing568. 奇妙的数列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
568. 奇妙的数列
-
判断区间起始位置l的奇偶性,若为偶数,则偶奇交替,一对和为1,反之为-1
-
然后计算区间内元素对数(r - l + 1) / 2,区间元素个数为r - l +1,如果区间内总数为偶数,必然是一正一负刚好成对。如果为奇数,需要判断区间右端点r位置数字奇偶性,并加到sum上。
import java.io.*;class Main{public static void main(String args[]) throws Exception{BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(bf.readLine());while(n -- > 0){String s [] = bf.readLine().split(" ");int l = Integer.parseInt(s[0]), r = Integer.parseInt(s[1]);// 区间内对数int k = (r - l + 1 ) >> 1;int t = r - l + 1;long sum = 0;if((l&1)==1){sum = k;}else{sum = - k;}// 奇数个if((t&1)==1){if((l&1)==1){sum -= r;}else{sum += r;}}System.out.println(sum);}}
}
这篇关于week2腾讯2019 暑期实习提前批笔试——acwing568. 奇妙的数列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!