あなたの仕事は、次のような数学的な演算子を使用して数値を変更することなく、正の整数の平方根を計算することです。
- 変数の設定(例:squareRoot = 5)
- 加算(A + B)
- 減算(AB)
- 乗算(A * B)
- 部門(A / B)
- 正方形、立方体、4番目などの根
- 指数
比較演算子(<、>、==など)は、この質問の目的では「数学演算子」とは見なされず、変数の値を変更しない限り許可されます。
使用できる唯一の演算子は++です。次の例外があります。
- 必要に応じて、変数を0に設定して初期化できます。
- 言語に++構文が含まれていない場合、foo + = 1やfoo = foo + 1などの同等の構文を使用できます。
- 平方根は、小数を超える少なくとも6桁(1万桁)で計算し、小数の整数として出力する必要があります(例:2を入力すると、丸めに応じて14142135624または1414213として出力される可能性があります) 。切り上げまたは切り捨ては重要ではありません。
ユーザー定義関数は許可されていません。また、gotoを使用した関数のシミュレーションも許可されていません。
みんなが投稿したものを見てみたいです!ハッピーコーディング!
明確化
数値が正の整数であることを明確にします。任意の数のコードを作成できますが、必須ではありません。
明確化#2
比較演算子が許可されていることを明確にします。
明確化#3
加算、減算、乗算、除算、および数値を変更する関数は、変数に保存されているかどうかに関係なく、まったく許可されていません。申し訳ありませんが、これはいくつかの既存の回答を無効にしますが、トロールの回答を防止するために、この演算子グループを「番号の変更」と定義するつもりでした(例:sqrt()関数を使用しましたが、追加のみを禁止し、乗算、除算、減算)。混乱させて申し訳ありません。
明確化#4
少なくとも5桁が必要であることを明確にします。10桁により、コードが長時間実行されました。
while r*r<n*10e20:r+=1
些細な- 。また、必要な出力を10 ^ 8程度に減らすことを検討することもできます。1つ目は10 ^ 10が2 ^ 31よりも大きいため、2つ目はその高さを増分するのに時間がかかるためです。