假设如果A = 1,B = 2 ----- Z = 26,现在AA = 27,AB = 28,那么现在求出ABC和ACA等的值是什么。
请帮助我用php制作此程序。
答案 0 :(得分:5)
在输入字符串的每个字符上使用for
循环。然后使用ord()
函数来获取字符的ASCII码-因为A为65,而A应该为1,则将其调整为64。在每个阶段,将先前的值乘以26来计算新的< em> digit 。
$input = "A";
$index = 0;
$input = strtoupper($input);
for( $i = 0, $end = strlen($input); $i < $end; $i++ ) {
$index = ($index*26)+(ord($input[$i])-64);
}
echo $index;
对于A
,它给出1
,对于AB
,它给出28
。
添加了行
$input = strtoupper($input);
应适当调整小写字母。
答案 1 :(得分:-1)
<?php
function abc($string){
$array = array('A'=>1,'B'=>2,'C'=>3,'D'=>4,"E"=>5,'F'=>6,'G'=>7,'H'=>8,'I'=>9,'J'=>10,'K'=>11,'L'=>12,'M'=>13,'N'=>14,'O'=>15,'P'=>16,'Q'=>17,'R'=>18,'S'=>19,'T'=>20,'U'=>21,'V'=>22,'W'=>23,'X'=>24,'Y'=>25,'Z'=>26);
$string = strtoupper($string);
$defautStart = 0;
$count = strlen($string);
for($i = 0; $i < $count; $i++){
$defautStart = ($defautStart * count($array)) + $array[$string[$i]];
}
return $defautStart;
}
$string = 'ABC';
$value = abc($tring);
echo $value;