检查数字是否在给定的基数内

给定一个数字作为字符串和基数,检查给定的数字是否在给定的基数内。 例如:

null
Input : str = "1010", base = 2Output : YesInput : str = "1015", base = 2Output : NoInput : str = "AF87", base = 16Output : Yes

其想法是逐个检查所有数字是否在给定的基本范围内。如果是,则返回true,否则返回false。

C++

// CPP program to check if given
// number is in given base or not.
#include <cstring>
#include <iostream>
using namespace std;
bool isInGivenBase(string str, int base)
{
// Allowed bases are till 16 (Hexadecimal)
if (base > 16)
return false ;
// If base is below or equal to 10, then all
// digits should be from 0 to 9.
else if (base <= 10)
{
for ( int i = 0; i < str.length(); i++)
if (!(str[i] >= '0' and
str[i] < ( '0' + base)))
return false ;
}
// If base is below or equal to 16, then all
// digits should be from 0 to 9 or from 'A'
else
{
for ( int i = 0; i < str.length(); i++)
if (! ((str[i] >= '0' &&
str[i] < ( '0' + base)) ||
(str[i] >= 'A' &&
str[i] < ( 'A' + base - 10))
))
return false ;
}
return true ;
}
// Driver code
int main()
{
string str = "AF87" ;
if (isInGivenBase(str, 16))
cout << "Yes" ;
else
cout << "No" ;
return 0;
}


JAVA

// Java program to check if given
// number is in given base or not.
class Geeks {
static boolean isInGivenBase(String str, int base)
{
// Allowed bases are till 16 (Hexadecimal)
if (base > 16 )
return false ;
// If base is below or equal to 10, then all
// digits should be from 0 to 9.
else if (base <= 10 )
{
for ( int i = 0 ; i < str.length(); i++)
if (!(str.charAt(i) >= '0' &&
str.charAt(i) < ( '0' + base)))
return false ;
}
// If base is below or equal to 16, then all
// digits should be from 0 to 9 or from 'A'
else
{
for ( int i = 0 ; i < str.length(); i++)
if (! ((str.charAt(i) >= '0' &&
str.charAt(i) < ( '0' + base)) ||
(str.charAt(i) >= 'A' &&
str.charAt(i) < ( 'A' + base - 10 ))
))
return false ;
}
return true ;
}
// Driver Class
public static void main(String args[])
{
String str = "AF87" ;
if (isInGivenBase(str, 16 ) == true )
System.out.println( "Yes" );
else
System.out.println( "No" );
}
}
// This code is contributed by ankita_saini


Python3

# Python3 program to check if given
# number is in given base or not.
def isInGivenBase( Str , base):
# Allowed bases are till 16 (Hexadecimal)
if (base > 16 ):
return False
# If base is below or equal to 10,
# then all digits should be from 0 to 9.
elif (base < = 10 ):
for i in range ( len ( Str )):
if ( Str [i].isnumeric() and
( ord ( Str [i]) > = ord ( '0' ) and
ord ( Str [i]) < ( ord ( '0' ) + base)) = = False ):
return False
# If base is below or equal to 16, then all
# digits should be from 0 to 9 or from 'A'
else :
for i in range ( len ( Str )):
if ( Str [i].isnumeric() and
(( ord ( Str [i]) > = ord ( '0' ) and
ord ( Str [i]) < ( ord ( '0' ) + base)) or
( ord ( Str [i]) > = ord ( 'A' ) and
ord ( Str [i]) < ( ord ( 'A' ) + base - 10 ))) = = False ):
return False
return True
# Driver code
Str = "AF87"
if (isInGivenBase( Str , 16 )):
print ( "Yes" )
else :
print ( "No" )
# This code is contributed by Mohit Kumar


C#

// C# program to check if given
// number is in given base or not.
using System;
class GFG
{
static bool isInGivenBase(String str,
int bas)
{
// Allowed base are
// till 16 (Hexadecimal)
if (bas > 16)
return false ;
// If bas is below or equal
// to 10, then all digits
// should be from 0 to 9.
else if (bas <= 10)
{
for ( int i = 0; i < str.Length; i++)
if (!(str[i] >= '0' &&
str[i] < ( '0' + bas)))
return false ;
}
// If base is below or equal
// to 16, then all digits should
// be from 0 to 9 or from 'A'
else
{
for ( int i = 0; i < str.Length; i++)
if (! ((str[i] >= '0' &&
str[i] < ( '0' + bas)) ||
(str[i] >= 'A' &&
str[i] < ( 'A' + bas - 10))
))
return false ;
}
return true ;
}
// Driver Code
public static void Main(String []args)
{
String str = "AF87" ;
if (isInGivenBase(str, 16) == true )
Console.WriteLine( "Yes" );
else
Console.WriteLine( "No" );
}
}
// This code is contributed
// by ankita_saini


PHP

<?php
// PHP program to check if given
// number is in given base or not.
function isInGivenBase( $str , $base )
{
// Allowed bases are till
// 16 (Hexadecimal)
if ( $base > 16)
return false;
// If base is below or equal to
// 10, then all digits should
// be from 0 to 9.
else if ( $base <= 10)
{
for ( $i = 0; $i < strlen ( $str ); $i ++)
if (!( $str [ $i ] >= '0' and
$str [ $i ] < ( '0' + $base )))
return false;
}
// If base is below or equal to 16,
// then all digits should be from
// 0 to 9 or from 'A'
else
{
for ( $i = 0; $i < strlen ( $str ); $i ++)
if (! (( $str [ $i ] >= '0' &&
$str [ $i ] < ( '0' + $base )) ||
( $str [ $i ] >= 'A' &&
$str [ $i ] < ( 'A' + $base - 10))
))
return false;
}
return true;
}
// Driver code
$str = "AF87" ;
if (isInGivenBase( $str , 16))
echo "Yes" ;
else
echo "No" ;
// This code is contributed by jit_t
?>


Javascript

<script>
// Javascript program to check if given
// number is in given base or not.
function isInGivenBase(str, bas)
{
// Allowed base are
// till 16 (Hexadecimal)
if (bas > 16)
return false ;
// If bas is below or equal
// to 10, then all digits
// should be from 0 to 9.
else if (bas <= 10)
{
for (let i = 0; i < str.length; i++)
if (!(str[i].charCodeAt() >=
'0' .charCodeAt() &&
str[i].charCodeAt() <
( '0' .charCodeAt() + bas)))
return false ;
}
// If base is below or equal
// to 16, then all digits should
// be from 0 to 9 or from 'A'
else
{
for (let i = 0; i < str.length; i++)
if (! ((str[i].charCodeAt() >=
'0' .charCodeAt() &&
str[i].charCodeAt() <
( '0' .charCodeAt() + bas)) ||
(str[i].charCodeAt() >=
'A' .charCodeAt() &&
str[i].charCodeAt() <
( 'A' .charCodeAt() + bas - 10))
))
return false ;
}
return true ;
}
let str = "AF87" ;
if (isInGivenBase(str, 16) == true )
document.write( "Yes" );
else
document.write( "No" );
</script>


输出:

Yes

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享