LinuxÒÁµéÔ°ÂÛ̳'s Archiver

001 ·¢±íÓÚ 2004-2-4 22:28

Ò»¸ö¶þ½øÖÆÕýÕûÊýתΪʮ½øÖÆÕýÕûÊýµÄ½Å±¾¡£

#!/usr/bin/perl
#author:devel
print "input a 2 format number :\n";
chomp($a=<STDIN> );
if ( $a >=10) {
while ( $a >= 10)
{
$A=&yu ($a);
$result += 2**$A;
$a -=10**$A;
}
$result += $a % 10 ;
print "$result\n";
}
else {
print "$a\n";
}
sub yu { #Õâ¸ö×Óº¯ÊýµÄ×÷ÓÃÊǼÆËã³öÓжàÉÙλµÄÊ®½øÖÆÕýÕûÊý¡£
$k=$a,$i=0;
while ( $k >= 10 )
{
$e= $k % 10;
exit if ( $k !~ /[01]/ );
$k -= $e;
$k/=10;
++$i;
}
exit if ($k !~ /[01]/ ); #¼ÓÁËÕâÀï
return "$i"; #·µ»ØÖµ¾ÍÊÇλÊýÁË¡£
}

__________________

ynwll ·¢±íÓÚ 2004-2-6 18:54

ÓÐË­ÄܰÑËü±ä³ÉC++,Ö»ÓÃ×î¼òµ¥µÄ½á¹¹Ñ½

dearvoid ·¢±íÓÚ 2004-3-2 13:01

## ÓÐÏÖ³ÉµÄ module ¿ÉÓÃ:
$ perl -e 'use Math::BigInt; $x = Math::BigInt->new("0b1111"); print $x, "\n";'

Ò³: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.