2017-04-04 14 views
-2

私はPHPで関数を書いています。この関数は1の整数パラメータをとり、その前に来たすべての数値とその数までの合計を計算し、その結果を返します。たとえば、「10」を渡すと、1 + 2 + 3 + 4などの合計を10まで返します。PHPで数字ではなく、エラーメッセージが表示される

渡された数値が負の数であるか、数値ではない、私は偽を返すはずです。今これが私の問題です。 -1を値として渡すと何も起こりません。文字列を渡すと次のようなエラーが表示されます: "警告:is_nan()はパラメータ1が2倍、/ nfs/home/h/h/Sum.php on line 11こんにちは "

これを修正する方法を理解できないようです。ここに私のコードです:

 function findSummation($aNum) 
     { 
      if(is_nan($aNum) || $aNum < 0) 
      { 
       return false; 
      } 

      $result = $aNum; 

      while($aNum > 0) 
      { 
       $result += --$aNum; 
      } 
      return $result; 
     } 
また

側の問題、運動のこの種は、再帰の概念を使用して行うことができます。 PHPは再帰をサポートしていますか?

+0

「PHPは再帰をサポートしていますか?」とGoogleに伝えることができます。 –

+0

が私に役立ちます:http://ideone.com/s50L80 – nogad

+0

このリンクを読むと、is_nanについて間違っているhttp://php.net/manual/en/function.is-nan.php –

答えて

4

is_nan()あなたが思うとは思わない。代わりにis_int()を使用してください。

+3

具体的には、is_nan ()は、[無効な浮動小数点演算](https://en.wikipedia.org/wiki/NaN)を検出するために使用されます。 – Quietust

+0

また、OPが "数字ではない"と思うものは正確ではありませんが、http://php.net/manual/en/function.is-numeric.php – AbraCadaver

+0

これを行うと、is_intは文字列そのものを表示します。これはおそらく私が必要とするものですが(私の教授に尋ねるでしょう)、偽を表示するのではないでしょうか?ちょうどPHPがどのように動作するのか理解しようとしています – JKawa

0

Gaussあなたは再帰を必要といけない、あなたの友達です:

function findSummation($aNum) 
{ 
    if(!is_int($aNum) || $aNum < 0) 
    { 
     return false; 
    } 
    return $aNum*($aNum + 1)/2; 
} 

wikipedia参照してください。

関連する問題