私はCodewarsの基礎を学び、1から与えられた数nまでのすべての整数を合計しようとしています。
nが有効な正の整数であることを確認する必要があります。そうでない場合、私はfalseを返さなければなりません。
たとえば、f(n = 100)// 5050を返します
これまでの私の解決策は機能しますが、nが分数でない場合に限ります。プログラムが分数を計算しないようにするにはどうすればよいですか?
function f(n)
{
var total = 0, count = 1;
while (count <= n) {
total += count;
count += 1;
}
if (typeof n === 'number')
{
return total;
}
else{
return false;
}
};
(typeof n === 'number')の代わりに、正の整数のみを計算する必要があります( 'number'のままである分数を受け入れるのとは対照的です)。
プログラムにこれを行うにはどうすればよいですか?
どうか、私はファンダメンタルズに取り組んでいるので、最も簡単な答えが最も役に立ちます。
これを行うにはいくつかの方法があります。
var isInt = function(i) {
return (typeof i === "number") && i === (~~ i)
};
~~
オペレータは、小数点以下のすべてのものを切り捨てるために起こっています。
function isInt(i) {
return (typeof i === "number") && i % 1 === 0;
}
数値が整数の場合、1で割った後は、休む必要はありません。
var isInit = function(i) {
return (i + '').indexOf('.') === -1
}
空の文字列を数値に追加すると、文字列に変換されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加