初心者/インタビューのためのジャワのソフトウエアプログラミングの例: 一時的数値変数を使用しないで整数(およびひも)変数を交換する方法
x及びyが整変数であることを言いなさい。 挑戦は一時的数値変数を使用しないでそれらを交換することである。
解決は問題自体簡単である:
X = x + y;
y = X-Y;
X = X-Y;
更新1: ジャックおよびAlexeyはその後訂正されていた私の解決のタイプエラーを指摘した。 次コメントを見なさい。
解決の簡易性は私に訴える。 それははっきり割り当てオペレータの意味を示す(「=」)。
それらがひもなら何か。
注: ジャワAPIでひも方法を使用できる。
解決はここにある:
X = x + y;
y = x.substring (0、x.indexOf (y));
X = x.substring (x.indexOf (y) + y.length ());
類似を見ることができるか。
上のどちらかに単純な解決方法を提供できるか。
更新2: ロバートはちょうど(次彼のコメントを見なさい)。 彼は1つのひもが別のもので含まれているときひもの解決が働かないことを指摘した。 彼の解決は次のとおりである:
X = x + y;
y = x.substring (0、x.length () - y.length ());
X = x.substring (y.length ());
いかにの下で に、ジャワ ソフトウェアファイルされる、 技術のノート |
|
RSS 2.0 |
Trackback この記事 |
この記事に電子メールを送りなさい
また読むのを好むかもしれない |


Technoratiの好みに加えなさい

































2005年10月30日2:53 AMの
X: 1つのy: 2
X = x + y;
X: 3 y: 2
X = X-Y;
X: 1つのy: 2
y = X-Y;
X: 1つのy: -1
2005年10月30日3:04 AMの
X = x+y;
y = X-Y;
X = X-Y;
2005年10月30日8:36 AMの
多分
X = x + y;
y = X-Y;
X = X-Y;
2005年10月30日9:24 AMの
@Jack及びAlexey
Oops!
捕獲物をありがとう。 訂正される。
ちょうど注意深いかどうか確認する
2005年10月30日9:25 AMの
BTW: 私は実際に候補者にインタビューしている間この質問を今日した。
2005年10月31日8:15 AMの
ひものサンプルはひもXが例えばひもy.を含んでいれば失敗する、
ひもX = 「こんにちは世界」;
ひもy = 「こんにちは」;
ステップ1: X = x + y;
X = 「こんにちはWorldHello」
ステップ2: y = x.substring (0、x.indexOf (y));
x.indexOf (y) = 0、そうy = 「」;
ステップ3: X = x.substring (x.indexOf (y) + y.length ());
x.indexOf (y) = 0およびy.length = 0、そうx = 「こんにちはWorldHello」
ひもでlastIndexOf ()方法をのような使用することによってこれを固定できる
X = x + y;
y = x.substring (0、x.lastIndexOf (y));
X = x.substring (x.indexOf (y) + y.length ());
または全体でindexOfの()計算を除去し、ちょうどひもの長さを使用できる
X = x + y;
y = x.substring (0、x.length () - y.length ());
X = x.substring (y.length ());
2005年10月31日8:53 AMの
@Robert
私はそれを好む。 それはよりきれいに見る。
2005年11月9日2:08 AMの
残念ながら、整数値を交換するコードは過剰またはアンダーフローを引き起こす価値のために失敗する。
但し、使用できる排他的または(xor)、外に運ぶ加えなさい。 次のunobviousコードはすべてのintの価値を交換する。
X = xの^ y;y = xの^ y;X = xの^ y;2006年9月28日6:10 AMの
使用によって1つのラベルからの別のものに手紙を(羽毛まで)交換するためにanagramの言葉遊びをコードするimはthreeBottons私が使用するひもをいかにべきである分類し、コードをか焦がすか。 (ラベル1の第2特性はラベル2の第2特性に置くべきである)私はこと多くの助けの感謝必要とする
2007年11月29日8:30 AMの
輸入java.io.*;
クラスab
{
公共の空電の空間の本管(ひものarg []) IOExceptionを投げる
{
int x=6;
(x=6)
{
System.out.println (」こんにちは…」);
}
}
}
質問はある。 変更を用いるこのプログラムを動かすこと可能なそれはある(x=6)
2008年2月26日4:34 AMの
(x > y)
{
X = X-Y;
y = y + x;
X = y - x;
}
他に
{
y = y - x;
X = x + y;
y = X-Y;
}