2016-09-15 4 views
0

私のAPコンピューターサイエンスクラスでは、アルゴリズムの割り当てに取り組んでいます。データタイプはboolean,doubleintのみです。データ型や数学ライブラリにJavasクラスを使用することはできません(言い換えると、最初からすべてをビルドする必要があります)。与えられた整数の桁数(length(int))と、電力を計算する桁数(power(double base, int exponent))を決定する作業方法はすでにあります。私はそれらが私が立ち往生している1つのアルゴリズムに必要であると信じています。アルゴリズムの説明を以下に示す:数字の数字を整数配列に入れる方法は?

nは正の整数で指定された 整数の右からn番目の桁を返すメソッドfindDigit(INT NUM、INT n)を書きます。例えば、 findDigit(30568,2)は6、 findDigit(234,5)が0、 findDigit(-4532,3が)私は、文字列クラスを使用するつもりだった5

戻ります戻ります戻ります私は私が許可されていないことを認識するまで。これは、数学演算のみを使用して行う必要があります。あなたの誰かが、整数の数字を含む配列を作る方法についての論理を私に与えることができたら、そこから行くのがよいでしょう。私はコードのロジックを好むだろう(私はそれを書く練習を得ることができます)が、どちらかのC + +やJavaのコードも同様に大丈夫です。

私は動作すると思っていたコードをいくつか持っていましたが、動作しなくなりました。もし必要ならそれを見たいと思ったら私はそれを提供することができます。

ありがとうございます!ここで

+5

ヒント:これは整数除算とmod演算子でのみ可能です。 – hatchet

+0

そして、あなたが数字を見つけている数字は基本10 ... –

+1

FlareCat、なぜあなたは間違った結果を返す答えを受け入れますか? – Andreas

答えて

-2

は、いくつかの擬似コードです:

int findDigit(int num, int n) { 

    for (i = 0; i < n-1; i++) { 
    num = num/10; 
    } 

    return num % 10; 
} 
+0

'10 ^(n-1)> num'の場合は初期条件でチェックできます。大きいn値の場合、すべての繰り返しをループしません(直ちに0を返します)。ちょうどperfomanceのために。 'n'の値を常に制御している場合は、チェックしないでください。 –

+3

私はStack Overflowが "私の宿題をする"サイトではないと思いました。これは疑似コードではありません。これはJavaであり、簡単に修正できるコンパイルエラーは1つしかありません。あなたは彼らのために任務を行うことによってOPを助けるわけではありません。 –

+2

この回答を読んでいる他の人のためのFYI。すべての入力に対して正しい結果を返しません。質問には3つのサンプル入力が記載されており、この回答は33%で失敗します。 – Andreas

-2

私はあなたのプロセスを示しています。ここにコードはありますか(C#と.netフレームワークライブラリを使用)

private int findDigit(int num, int n) 
    { 
     string result = string.Empty; 

     int unsigned = Math.Abs(num); //To get th absolute value of num 
     string str = unsigned.ToString();//Convert the (absolute value) to string 
     int index = str.Length - n;  //Index of the desired digit 

     try 
     { 
      result = str.Substring(index, 1);  
     } 
     catch 
     { 
      result = "0"; 
     } 

     int digit = Convert.ToInt32(result); //To Convert the result into int 

     return digit; 
    } 
+1

OPは既にToString()が許可されていないと言っています:* ToString()メソッドを持たない* – Andreas

+0

* "私は文字列クラスを使用していました。 intの長さまたはC#の数字のインデックス。私はあなたを助けることができません。 – Pavel

+2

@Pavel私はそれが信じることは非常に難しいことがわかります。私はC#プログラマーではありませんが、あなたがそれをサポートしていることと、モジュラス演算をサポートしていると思います。 –

関連する問題