2016-10-05 15 views
0

私は659の回答を得ていますが、1つは間違っています。 varキーワードはありません、それの後に、その前に来るべき、とsumの計算でも同様の問題 - これは私のコード数字100の数字の合計を見つけてください! JavaScriptの

var fact=1; 

for(var i=1;i<=100;i++){ 

fact = fact*i; 

} 

var sum = 0; 

while (fact > 0) { 

sum += fact % 10; 

fact = Math.floor(fact/10); 
} 
console.log(sum); 
+0

コードに問題がありますか?私はそれがそのように動作しないことを意味します。あなたが本当に一桁を得ても。 –

+0

この 'fact = fact * i;'の代わりに、 'fact + = fact * i;'を実行したくないですか? –

+0

@NinaScholz 'length = var strlen(事実);'、 'sum + = var substr(事実、j、1); ' – guest271314

答えて

1

でありlengthの定義の構文エラーです。

それにかかわらず、数字を文字列に変換することは難しいと思います。あなたはすべての桁で行われているまでは、(!床に忘れてはいけません)最後の桁を取得し、10で数を分割する%演算子を使用することができます。

var sum = 0; 
while (fact > 0) { 
    sum += fact % 10; 
    fact = Math.floor(fact/10); 
} 
0

クール。あなたは非常に分かりやすいコードを書いています。しかし、考えるべきことがいくつかあります。 1つは100の巨大なサイズです!コンソールにアクセスしてコードを入力すると、次のように表示されます。

> fact=1 
1 
> for(i=1;i<=100;i++){fact *= i;} 
9.33262154439441e+157 

Crikey 10から157まで。最大の整数jsを表示することができます。それははるかに小さいです!したがって、これがプログラミング課題であれば、より微妙な対応が必要です。

次に、158桁の数値を取得してストラテジを使用して追加したい場合は、取得した文字列(最後に部分文字列が文字列)を番号に変換する必要があります。

実際には、数字はを除いて、の数値を計算することなく計算できますか?

関連する問題