[문제] 양의 정수 n에 대해서 1과 n 사이에 1이 나오는 횟수를 나타내는 함수를 f(n)이라고 한다. 예를 들어 f(13)=6이다. f(n)=n이 되는 첫번째 양수는 1이다. 두번째 양수는 무엇인가?
php로 해 봤습니다. function은 계산 시간 구하는 것입니다.
$j값(한계)을 설정하면, n값을 출력합니다. 꽤나 길군요..ㅋㅋ
완료 url : http://suritam9.woweb.net/www/php/ques.php
<?
function php_timer(){
static $arr_timer;
if(!isset($arr_timer)){
$arr_timer = explode(" ", microtime());
}else{
$arr_timer2 = explode(" ", microtime());
$result = ($arr_timer2[1] - $arr_timer[1]) + ($arr_timer2[0] - $arr_timer[0]);
$result = sprintf("%.4f",$result);
return $result;
}
return false;
}
$j = 199983; //한계 값 정하기
$ans = 0;
$i=1;
print php_timer();
while($i<=$j){
if(($i-1)%10==0){
$ans++;
}
for($k=1;$k<=floor(log10($i));$k++){
if((floor($i/pow(10, $k))-1)%10==0){
$ans++;
}
}
if($ans==$i){
echo $i;
echo "<br>";
}
$i++;
}
print "<br>".php_timer(); // 소요 시간-서버나 클라이언트 사정에 따라 5~10초 걸립니다.
?>
php로 해 봤습니다. function은 계산 시간 구하는 것입니다.
$j값(한계)을 설정하면, n값을 출력합니다. 꽤나 길군요..ㅋㅋ
완료 url : http://suritam9.woweb.net/www/php/ques.php
<?
function php_timer(){
static $arr_timer;
if(!isset($arr_timer)){
$arr_timer = explode(" ", microtime());
}else{
$arr_timer2 = explode(" ", microtime());
$result = ($arr_timer2[1] - $arr_timer[1]) + ($arr_timer2[0] - $arr_timer[0]);
$result = sprintf("%.4f",$result);
return $result;
}
return false;
}
$j = 199983; //한계 값 정하기
$ans = 0;
$i=1;
print php_timer();
while($i<=$j){
if(($i-1)%10==0){
$ans++;
}
for($k=1;$k<=floor(log10($i));$k++){
if((floor($i/pow(10, $k))-1)%10==0){
$ans++;
}
}
if($ans==$i){
echo $i;
echo "<br>";
}
$i++;
}
print "<br>".php_timer(); // 소요 시간-서버나 클라이언트 사정에 따라 5~10초 걸립니다.
?>
댓글 달기