我是靠谱客的博主 舒适海燕,最近开发中收集的这篇文章主要介绍整合整数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

B - 2 CodeForces - 318A

Being a nonconformist, Volodya is displeased with the current state of things, particularly with the order of natural numbers (natural number is positive integer number). He is determined to rearrange them. But there are too many natural numbers, so Volodya decided to start with the first n. He writes down the following sequence of numbers: firstly all odd integers from 1 to n (in ascending order), then all even integers from 1 to n (also in ascending order). Help our hero to find out which number will stand at the position number k.

Input
The only line of input contains integers n and k (1 ≤ k ≤ n ≤ 1012).

Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specifier.

Output
Print the number that will stand at the position number k after Volodya’s manipulations.

Examples
Input
10 3
Output
5
Input
7 7
Output
6
Note
In the first sample Volodya’s sequence will look like this: {1, 3, 5, 7, 9, 2, 4, 6, 8, 10}. The third place in the sequence is therefore occupied by the number 5.
题目大意:让用户输入一个数n, 从1到n的所有奇数整数(按升序排列),然后从1到n的所有偶数整数(也按升序排)找出哪个数字将站在位置编号k。
思路:如果k小于n/2;那么就是奇数等于(2k-1);如果大于n/2那么就是偶数为(2(k-2/n))。
代码如下(已AC)

#include<iostream>
using namespace std;
int main()
{
long long int n, k, x;
cin >> n >> k;
if (n % 2 == 0)
x = n / 2;
else
x = n / 2 + 1;
if (k <= x)
cout << 2 * k - 1;
else
cout << 2 * (k - x);
return 0;
}

最后

以上就是舒适海燕为你收集整理的整合整数的全部内容,希望文章能够帮你解决整合整数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(92)

评论列表共有 0 条评论

立即
投稿
返回
顶部