给定整数N。任务是打印N的二进制表示形式的前三位和后三位的十进制等效项。
例子:
Input: 86
Output: 5 6
The binary representation of 86 is 1010110.
The decimal equivalent of the first three bits (101) is 5.
The decimal equivalent of the last three bits (110) is 6.
Hence the output is 5 6.
Input: 7
Output: 7 7
简单方法:
- 将N转换为二进制并将这些位存储在数组中。
- 将数组中的前三个值转换为等效的十进制数并进行打印。
- 同样,将数组中的最后三个值转换为等效的十进制数并进行打印。
下面是上述方法的实现:
C++
// C++ implementation of the approach
#include
using namespace std;
// Function to print the first
// and last 3 bits equivalent decimal number
void binToDecimal3(int n)
{
// Converting n to binary
int a[64] = { 0 };
int x = 0, i;
for (i = 0; n > 0; i++) {
a[i] = n % 2;
n /= 2;
}
// Length of the array has to be at least 3
x = (i < 3) ? 3 : i;
// Convert first three bits to decimal
int d = 0, p = 0;
for (int i = x - 3; i < x; i++)
d += a[i] * pow(2, p++);
// Print the decimal
cout << d << " ";
// Convert last three bits to decimal
d = 0;
p = 0;
for (int i = 0; i < 3; i++)
d += a[i] * pow(2, p++);
// Print the decimal
cout << d;
}
// Driver code
int main()
{
int n = 86;
binToDecimal3(n);
return 0;
}
Java
//Java implementation of the approach
import java.math.*;
public class GFG {
//Function to print the first
//and last 3 bits equivalent decimal number
static void binToDecimal3(int n)
{
// Converting n to binary
int a[] = new int[64] ;
int x = 0, i;
for (i = 0; n > 0; i++) {
a[i] = n % 2;
n /= 2;
}
// Length of the array has to be at least 3
x = (i < 3) ? 3 : i;
// Convert first three bits to decimal
int d = 0, p = 0;
for (int j = x - 3; j < x; j++)
d += a[j] * Math.pow(2, p++);
// Print the decimal
System.out.print( d + " ");
// Convert last three bits to decimal
d = 0;
p = 0;
for (int k = 0; k < 3; k++)
d += a[k] * Math.pow(2, p++);
// Print the decimal
System.out.print(d);
}
//Driver code
public static void main(String[] args) {
int n = 86;
binToDecimal3(n);
}
}
Python3
# Python 3 implementation of the approach
from math import pow
# Function to print the first and last 3
# bits equivalent decimal number
def binToDecimal3(n):
# Converting n to binary
a = [0 for i in range(64)]
x = 0
i = 0
while(n > 0):
a[i] = n % 2
n = int(n / 2)
i += 1
# Length of the array has to
# be at least 3
if (i < 3):
x = 3
else:
x = i
# Convert first three bits to decimal
d = 0
p = 0
for i in range(x - 3, x, 1):
d += a[i] * pow(2, p)
p += 1
# Print the decimal
print(int(d), end =" ")
# Convert last three bits to decimal
d = 0
p = 0
for i in range(0, 3, 1):
d += a[i] * pow(2, p)
p += 1
# Print the decimal
print(int(d),end = " ")
# Driver code
if __name__ == '__main__':
n = 86
binToDecimal3(n)
# This code is contributed by
# Sanjit_Prasad
C#
// C# implementation of the approach
using System;
class GFG
{
// Function to print the first and last
// 3 bits equivalent decimal number
static void binToDecimal3(int n)
{
// Converting n to binary
int [] a= new int[64] ;
int x = 0, i;
for (i = 0; n > 0; i++)
{
a[i] = n % 2;
n /= 2;
}
// Length of the array has to be
// at least 3
x = (i < 3) ? 3 : i;
// Convert first three bits to decimal
int d = 0, p = 0;
for (int j = x - 3; j < x; j++)
d += a[j] *(int)Math.Pow(2, p++);
// Print the decimal
int d1 = d;
// Convert last three bits to decimal
d = 0;
p = 0;
for (int k = 0; k < 3; k++)
d += a[k] * (int)Math.Pow(2, p++);
// Print the decimal
Console.WriteLine(d1 + " " + d);
}
// Driver code
static void Main()
{
int n = 86;
binToDecimal3(n);
}
}
// This code is contributed by Mohit kumar 29
Javascript
C++
// C++ implementation of the approach
#include
using namespace std;
// Function to print the first
// and last 3 bits equivalent decimal
// number
void binToDecimal3(int n)
{
// Number formed from last three
// bits
int last_3 = ((n & 4) + (n & 2) + (n & 1));
// Let us get first three bits in n
n = n >> 3;
while (n > 7)
n = n >> 1;
// Number formed from first three
// bits
int first_3 = ((n & 4) + (n & 2) + (n & 1));
// Printing result
cout << first_3 << " " << last_3;
}
// Driver code
int main()
{
int n = 86;
binToDecimal3(n);
return 0;
}
Java
// Java implementation of the approach
import java.util.*;
class GFG
{
// Function to print the first
// and last 3 bits equivalent
// decimal number
static void binToDecimal3(int n)
{
// Number formed from last three
// bits
int last_3 = ((n & 4) +
(n & 2) + (n & 1));
// Let us get first three bits in n
n = n >> 3;
while (n > 7)
n = n >> 1;
// Number formed from first
// three bits
int first_3 = ((n & 4) +
(n & 2) + (n & 1));
// Printing result
System.out.println(first_3 + " " + last_3);
}
// Driver code
public static void main(String args[])
{
int n = 86;
binToDecimal3(n);
}
}
// This code is contributed by
// Surendra_Gangwar
Python3
# Python3 implementation of the approach
# Function to print the first and
# last 3 bits equivalent decimal
# number
def binToDecimal3(n) :
# Number formed from last three
# bits
last_3 = ((n & 4) + (n & 2) + (n & 1));
# Let us get first three bits in n
n = n >> 3
while (n > 7) :
n = n >> 1
# Number formed from first three
# bits
first_3 = ((n & 4) + (n & 2) + (n & 1))
# Printing result
print(first_3,last_3)
# Driver code
if __name__ == "__main__" :
n = 86
binToDecimal3(n)
# This code is contributed by Ryuga
C#
// C# implementation of the approach
using System;
class GFG
{
// Function to print the first
// and last 3 bits equivalent
// decimal number
static void binToDecimal3(int n)
{
// Number formed from last three
// bits
int last_3 = ((n & 4) +
(n & 2) + (n & 1));
// Let us get first three bits in n
n = n >> 3;
while (n > 7)
n = n >> 1;
// Number formed from first
// three bits
int first_3 = ((n & 4) +
(n & 2) + (n & 1));
// Printing result
Console.WriteLine(first_3 + " " + last_3);
}
// Driver code
static public void Main ()
{
int n = 86;
binToDecimal3(n);
}
}
// This code is contributed by akt_mit..
PHP
> 3;
while ($n > 7)
$n = $n >> 1;
// Number formed from first three
// bits
$first_3 = (($n & 4) + ($n & 2) + ($n & 1));
// Printing result
echo($first_3);
echo(" ");
echo($last_3);
}
// Driver code
$n = 86;
binToDecimal3($n);
// This code is contributed
// by Shivi_Aggarwal
?>
Javascript
输出:
5 6
高效方法:
我们可以使用按位运算运算符来查找所需的数字。
C++
// C++ implementation of the approach
#include
using namespace std;
// Function to print the first
// and last 3 bits equivalent decimal
// number
void binToDecimal3(int n)
{
// Number formed from last three
// bits
int last_3 = ((n & 4) + (n & 2) + (n & 1));
// Let us get first three bits in n
n = n >> 3;
while (n > 7)
n = n >> 1;
// Number formed from first three
// bits
int first_3 = ((n & 4) + (n & 2) + (n & 1));
// Printing result
cout << first_3 << " " << last_3;
}
// Driver code
int main()
{
int n = 86;
binToDecimal3(n);
return 0;
}
Java
// Java implementation of the approach
import java.util.*;
class GFG
{
// Function to print the first
// and last 3 bits equivalent
// decimal number
static void binToDecimal3(int n)
{
// Number formed from last three
// bits
int last_3 = ((n & 4) +
(n & 2) + (n & 1));
// Let us get first three bits in n
n = n >> 3;
while (n > 7)
n = n >> 1;
// Number formed from first
// three bits
int first_3 = ((n & 4) +
(n & 2) + (n & 1));
// Printing result
System.out.println(first_3 + " " + last_3);
}
// Driver code
public static void main(String args[])
{
int n = 86;
binToDecimal3(n);
}
}
// This code is contributed by
// Surendra_Gangwar
Python3
# Python3 implementation of the approach
# Function to print the first and
# last 3 bits equivalent decimal
# number
def binToDecimal3(n) :
# Number formed from last three
# bits
last_3 = ((n & 4) + (n & 2) + (n & 1));
# Let us get first three bits in n
n = n >> 3
while (n > 7) :
n = n >> 1
# Number formed from first three
# bits
first_3 = ((n & 4) + (n & 2) + (n & 1))
# Printing result
print(first_3,last_3)
# Driver code
if __name__ == "__main__" :
n = 86
binToDecimal3(n)
# This code is contributed by Ryuga
C#
// C# implementation of the approach
using System;
class GFG
{
// Function to print the first
// and last 3 bits equivalent
// decimal number
static void binToDecimal3(int n)
{
// Number formed from last three
// bits
int last_3 = ((n & 4) +
(n & 2) + (n & 1));
// Let us get first three bits in n
n = n >> 3;
while (n > 7)
n = n >> 1;
// Number formed from first
// three bits
int first_3 = ((n & 4) +
(n & 2) + (n & 1));
// Printing result
Console.WriteLine(first_3 + " " + last_3);
}
// Driver code
static public void Main ()
{
int n = 86;
binToDecimal3(n);
}
}
// This code is contributed by akt_mit..
的PHP
> 3;
while ($n > 7)
$n = $n >> 1;
// Number formed from first three
// bits
$first_3 = (($n & 4) + ($n & 2) + ($n & 1));
// Printing result
echo($first_3);
echo(" ");
echo($last_3);
}
// Driver code
$n = 86;
binToDecimal3($n);
// This code is contributed
// by Shivi_Aggarwal
?>
Java脚本
输出:
5 6
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。