Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

k-th number in the Odd-Even sequence

  • Difficulty Level : Medium
  • Last Updated : 24 Mar, 2021

Given two numbers n and k, find the k-th number in the Odd-Even sequence made of n. The Odd-Even sequence contains first contains all odd numbers from 1 to n then all even numbers in set 1 to n. 
 

Examples :
Input :  n = 5, k = 3
Output : 5
In this example, the Odd-Even  is
{1, 3, 5, 2, 4}. 
The third number in sequence is 5.

 

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

Naive Approach : 

The first approach is simply make a Odd-Even sequence and then find k-th element in it. 
 

C++




// CPP program to find k-th
// element in the Odd-Even
// sequence.
#include <bits/stdc++.h>
using namespace std;
 
int findK(int n, int k)
{
    vector<long> a;
     
    // insert all the odd
    // numbers from 1 to n.
    for (int i = 1; i < n; i++)
        if (i % 2 == 1)
            a.push_back(i);
     
    // insert all the even
    // numbers from 1 to n.
    for (int i = 1; i < n; i++)
        if (i % 2 == 0)
            a.push_back(i);
     
    return (a[k - 1]);
}
 
// Driver code
int main()
{
    long n = 10, k = 3;
    cout << findK(n, k) << endl;
    return 0;
}

Java




// Java program to find k-th
// element in the Odd-Even
// sequence.
import java.util.*;
 
class GFG{
static int findK(int n, int k)
{
    ArrayList<Integer> a = new ArrayList<Integer>(n);
     
    // insert all the odd
    // numbers from 1 to n.
    for (int i = 1; i < n; i++)
        if (i % 2 == 1)
            a.add(i);
     
    // insert all the even
    // numbers from 1 to n.
    for (int i = 1; i < n; i++)
        if (i % 2 == 0)
            a.add(i);
     
    return (a.get(k - 1));
}
 
// Driver code
public static void main(String[] args)
{
    int n = 10, k = 3;
    System.out.println(findK(n, k));
}
}
// This code is contributed by mits

Python3




# Python3 code to find
# k-th element in the
# Odd-Even sequence.
 
def findK (n, k ):
    a = list()
     
    # insert all the odd
    # numbers from 1 to n.
    i = 1
    while i < n:
        a.append(i)
        i = i + 2
     
    # insert all the even
    # numbers from 1 to n.
    i = 2
    while i < n:
        a.append(i)
        i = i + 2
         
    return (a[k - 1])
 
# Driver code
n = 10
k = 3
print(findK(n, k))
 
# This code is contributed
# by "Sharad_Bhardwaj".

C#




// C# program to find k-th
// element in the Odd-Even
// sequence.
using System;
using System.Collections;
 
class GFG{
static int findK(int n, int k)
{
    ArrayList a = new ArrayList(n);
     
    // insert all the odd
    // numbers from 1 to n.
    for (int i = 1; i < n; i++)
        if (i % 2 == 1)
            a.Add(i);
     
    // insert all the even
    // numbers from 1 to n.
    for (int i = 1; i < n; i++)
        if (i % 2 == 0)
            a.Add(i);
     
    return (int)(a[k - 1]);
}
 
// Driver code
static void Main()
{
    int n = 10, k = 3;
    Console.WriteLine(findK(n, k));
}
}
// This code is contributed by mits

PHP




<?php
// PHP program to find k-th
// element in the Odd-Even
// sequence.
 
function findK($n, $k)
{
    $a;
    $index = 0;
     
    // insert all the odd
    // numbers from 1 to n.
    for ($i = 1; $i < $n; $i++)
        if ($i % 2 == 1)
            $a[$index++] = $i;
     
    // insert all the even
    // numbers from 1 to n.
    for ($i = 1; $i < $n; $i++)
        if ($i % 2 == 0)
            $a[$index++] = $i;
     
    return ($a[$k - 1]);
}
 
// Driver code
$n = 10;
$k = 3;
echo findK($n, $k);
 
// This code is contributed by mits.
?>

Javascript




<script>
    // Javascript program to find k-th
    // element in the Odd-Even
    // sequence.
     
    function findK(n, k)
    {
        let a = [];
 
        // insert all the odd
        // numbers from 1 to n.
        for (let i = 1; i < n; i++)
            if (i % 2 == 1)
                a.push(i);
 
        // insert all the even
        // numbers from 1 to n.
        for (let i = 1; i < n; i++)
            if (i % 2 == 0)
                a.push(i);
 
        return (a[k - 1]);
    }
     
    let n = 10, k = 3;
    document.write(findK(n, k));
     
    // This code is contributed by mukesh07.
</script>

Output : 
 

 5

The time complexity of the above approach is O(n), for an O(1) approach read the approach discussed here.
 




My Personal Notes arrow_drop_up
Recommended Articles
Page :