インド式掛け算をJava でかいてみてください。

いいコードには高得点差し上げます。
11*11から99*99の」答えが出るようにしてください。
http://www.geocities.jp/journey4web/Labo/KenSquar.html
/*答えを書かない人は投稿しないでください。*/

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/08/01 07:36:38
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:aside No.5

回答回数339ベストアンサー獲得回数31

ポイント25pt

九九の表みたいな出力

public class MultiCalc {
	public static void main(String[] args) {
		for (int i = 10; i < 100; i++) {
			if (i != 10) {
				System.out.print(i);
			}
			for (int j = 11; j < 100; j++) {
				if (i == 10) {
					System.out.print("\t" + j);
				} else {
					System.out
							.print("\t"
									+ ((int) (i / 10) * (int) (j / 10) * 100
											+ (int) (i / 10) * (j % 10) * 10
											+ (i % 10) * (int) (j / 10) * 10 + (i % 10)
											* (j % 10)));
				}

			}
			System.out.print("\n");
		}
	}
}
id:rthuk

ありがとうございます。中々シンプルですね。

2007/07/31 01:52:34

その他の回答4件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント25pt
<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT language="JavaScript">
<!--
i=0;
function Start(){

a1=document.myform.mytext1.value;
a2=document.myform.mytext2.value;

f=1;

b1=Number(a1);
b2=Number(a2);

if (b1<10) { f=0; }
if (b1>99) { f=0; }
if (b2<10) { f=0; }
if (b2>99) { f=0; }

m1="";
m2="";
m3="";
m4="";
m5="";

if (f==0){
  m1="計算できません。"; 
}
else{

k1= a1.substr(0, 1) *   a2.substr(0, 1) * 100;
m1= a1.substr(0, 1) + "×" +  a2.substr(0, 1) + "× 100 = " + k1;

k2= a1.substr(1, 1) *   a2.substr(0, 1) * 10;
m2= a1.substr(1, 1) + "×" +  a2.substr(0, 1) + "× 10 = " + k2;

k3= a1.substr(0, 1) *   a2.substr(1, 1) * 10;
m3= a1.substr(0, 1) + "×" +  a2.substr(1, 1) + "× 10 = " + k3;

k4= a1.substr(1, 1) *   a2.substr(1, 1) ;
m4= a1.substr(1, 1) + "×" +  a2.substr(1, 1) + " = " + k4;

k5= k1+k2+k3+k4;
m5= "合計 = " + k5;


}

myText3.innerHTML = m1;
myText4.innerHTML = m2;
myText5.innerHTML = m3;
myText6.innerHTML = m4;
myText7.innerHTML = m5;

}
//-->
</SCRIPT>
</HEAD>
<CENTER>
<FORM name="myform">
<INPUT name='mytext1' size='10' style="position:absolute;top:10;left:10;">
<BR>
<INPUT name='mytext2' size='10' style="position:absolute;top:40;left:10;">
<BR>
<INPUT type="button" value="計算" onClick="Start()">

<DIV id="myText3" style="position:absolute;top:70;left:10;"></DIV>
<BR>
<DIV id="myText4" style="position:absolute;top:100;left:10;"></DIV>
<BR>
<DIV id="myText5" style="position:absolute;top:130;left:10;"></DIV>
<BR>
<DIV id="myText6" style="position:absolute;top:160;left:10;"></DIV>
<BR>
<DIV id="myText7" style="position:absolute;top:190;left:10;"></DIV>
<BR>

</FORM>
</CENTER>
</BODY>
</HTML>

こんな感じでどうでしょうか?

id:rthuk

ありがとうございます。スクリプトじゃないやつでお願いします。

2007/07/27 17:30:47
id:imafuku No.2

回答回数12ベストアンサー獲得回数0

ポイント25pt

public class IndiaCalc {

/**

* @param args

*/

public static void main(String[] args) {

for (int i = 11 ; i < 100 ; i++){

for (int j = 11 ; j < 100 ; j++){

int ichiI = i % 10;

int ichiJ = j % 10;

int juuI = i / 10;

int juuJ = j / 10;

int answer = juuI * juuJ * 100 + juuI * ichiJ * 10 + ichiI * juuJ * 10 + ichiI * ichiJ;

print (i, j, answer);

}

}

}

private static void print(int i, int j, int answer) {

System.out.println(i + " × " + j + " = " + answer + "(検算:" + (i * j) + ")");

}

}

id:rthuk

ありがとうございます。これだと96*99、99*99までしか出来ないんですけど。

あーよくみたら全部やってましたね。9801個。出来れば一覧できるようにしてほしかった。全部見ることができませんから。

2007/07/28 14:55:12
id:y3b5 No.3

回答回数32ベストアンサー獲得回数3

ポイント25pt

こんなのでどうでしょう?

public class India_kuku {

	private static final int KUKU_MIN = 11;
	private static final int KUKU_MAX = 99;

	public static void main(String[] args) {

		if (args.length != 2){
			System.out.println("パラメータは2個必要!");
			return;
		}
		
		int param1 = Integer.parseInt(args[0]);
		int param2 = Integer.parseInt(args[1]);
		
		if ((param1 < KUKU_MIN) || (KUKU_MAX < param1) || (param2 < KUKU_MIN) || (KUKU_MAX < param2)){
			System.out.printf("数字は%dから%dの間!\n",KUKU_MIN,KUKU_MAX);
			return;
		}
		
		int p1_1 = param1 % 10; 	// param1の1の位
		int p1_10 = param1 / 10; 	// param1の10の位
		int p2_1 = param2 % 10; 	// param2の1の位
		int p2_10 = param2 / 10; 	// param2の10の位
		int kekka_1 = p1_10 * p2_10 * 100; 	// (1)10の位同士を掛けて100倍
		int kekka_2 = p1_10 * p2_1 * 10; 	// (2)外側の数字同士を掛けて10倍
		int kekka_3 = p1_1 * p2_10 * 10; 	// (3)内側の数字同士を掛けて10倍
		int kekka_4 = p1_1 * p2_1; 			// (4)1の位同士を掛ける

		System.out.println("(1) " + p1_10 + " * " + p2_10 + " * 100 = " + kekka_1);
		System.out.println("(2) " + p1_1  + " * " + p2_10 + " *  10 = " + kekka_2);
		System.out.println("(3) " + p1_10 + " * " + p2_1  + " *  10 = " + kekka_3);
		System.out.println("(4) " + p1_1  + " * " + p2_1  + "       = " + kekka_4);
		System.out.printf("合計:%d\n", kekka_1 + kekka_2+ kekka_3 + kekka_4);

	}
}
id:rthuk

ありがとうございます。実行のやりかたがわかりません。

2007/07/28 08:55:23
id:felix2007 No.4

回答回数600ベストアンサー獲得回数4

id:rthuk

貴方はふざけてるんですか?

はてなに報告しましたから。

2007/07/28 08:55:26
id:aside No.5

回答回数339ベストアンサー獲得回数31ここでベストアンサー

ポイント25pt

九九の表みたいな出力

public class MultiCalc {
	public static void main(String[] args) {
		for (int i = 10; i < 100; i++) {
			if (i != 10) {
				System.out.print(i);
			}
			for (int j = 11; j < 100; j++) {
				if (i == 10) {
					System.out.print("\t" + j);
				} else {
					System.out
							.print("\t"
									+ ((int) (i / 10) * (int) (j / 10) * 100
											+ (int) (i / 10) * (j % 10) * 10
											+ (i % 10) * (int) (j / 10) * 10 + (i % 10)
											* (j % 10)));
				}

			}
			System.out.print("\n");
		}
	}
}
id:rthuk

ありがとうございます。中々シンプルですね。

2007/07/31 01:52:34
  • id:Vacuum
    回答者:felix2007 がイヤなやつということだけは、よくわかった。
  • id:rthuk
    自分でやってみたら。教科書を直しただけですけど。
    public class IndyKUKU {

    public static void main(String[] args){
    int [][] hyou = new int [99][99];//二次元配列で九九の表をだす
    //表の作成
    for(int i = 11; i <= 99; i++){
    for(int j = 11; j <=99; j++){
    hyou[i-1][j-1] = i*j;
    }
    }
    //表の出力
    for(int i = 11; i<=99; i++){
    for(int j=11; j <= 99; j++){
    System.out.print(hyou[i-1][j-1] + " ");
    }
    System.out.println(); //改行
    }
    }

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません