2017-09-19 5 views
-1
def start(digit:Int) 
    { 
    var max = "9"*digit.toInt 
    var min = "1"+"0"*(digit-1).toInt 

    for(i <- max to min by -1){ 
       . .^(type mismatch; found : String required: scala.collection.generic.CanBuildFrom[Nothing,Char,?]) 


     var front = i 
    } 



    } 

それ言うタイプ "ミスマッチ;見つかっ:Stringrequired:scala.collection.generic.CanBuildFrom [何も、シャアは,?]"Scalaの-CANループのために減少しませ

+2

maxとminは両方とも文字列です。あなたはそれらがIntsであることを意味しましたか? – puhlen

+0

はい私はそれをIntに変換します。 –

+1

これをintにすると、 – puhlen

答えて

3

はたぶん、あなたが必要ブラケット:

var max = ("9" * digit).toInt 
var min = ("1"+"0"*(digit-1)).toInt 
+0

私はそれを考え出しました。助けてくれてありがとう! –

+0

@ O.Chounry答えがあなたのために働くなら、あなたはそれを受け入れることができます。 –

1

別の方法としては、最初の場所で文字列の使用を控えることです - Math.powを使用してのように見えますが、あなたが達成しようとしているもののより直接的な表現である:

val max = Math.pow(10, digit) - 1 // e.g. 9999.0 for digit = 4 
val min = Math.pow(10, digit - 1) // e.g. 1000.0 for digit = 4 
関連する問題