JAVA程式計算99乘法問題

2007-07-05 10:17 pm
public class test {
public static void main(String[] args) {
int x,y;
for(x=1;x<=9;x++){
for(y=1;y<=9;y++)
{
System.out.println(x + "*" + y + "=" + (x*y));
}
}
}
}
---------------------------------------------------------------
這是寫好的99乘法表,想問的是
如何加上 要列印出全部的總和
例如 上列程式 有計算1*1=1,1*2=2,1*3=3
那加上程式計算總和 1+2+3+......+81=總和
請問各位大大 程式要怎麼加上去呢?
更新1:

耗呆小綿羊 大大 照你的第一個方法沒跑出總合 ----------------------------------------- 遊戲大盤商~* 大大 符合我要的 不過剛剛忘了說明一個 我想要列印出 1*1~1*9的總合 下一個就是2*1~2*9計算完後顯示2的總合 麻煩大大補充了 謝謝

更新2:

第一位大大後來補充的ok ------------------------------------ 第二位大大 後來補充的我用出來還是沒有跑出各別的總和 可能我不會用吧~真是抱歉 ----------------------------------- 第三位大大貼的簡單明瞭 直接複製貼上就ok了 感謝三位大大的指教 解答不知該怎麼選擇@@

更新3:

第二位大大寫的會不會是c的?? 像是 { return 45*n; } 不知這行程式是在計算什麼??

更新4:

@@? { return 45*n; } 這行程式等於 ------------------------------ 以 1 為舉例: 1*1+1*2+...+1*9 = 1*( 1+2+...+9 ) = 1* [ 9*(9+1) / 2 ] =1* 45 這串???? ----------------------------- why?

回答 (3)

2007-07-06 6:05 pm
✔ 最佳答案
請參考我的做法

public class test {
public static void main(String[] args) {
int x,y;
int total = 0;
for(x=1;x<=9;x++) {
int sum = 0;
for(y=1;y<=9;y++) {
sum += x*y;
System.out.print(x + "*" + y + "=" + (x*y) + " ");
}
System.out.println();
System.out.println(x + " 的乘積總和為 " + sum);
total += sum;
}
System.out.println("所有乘積的總和為 " + total);
}
}

2007-07-05 11:06 pm
我這裡有「第一種方法」和「第二種方法」

第一種方法:累加(這是很常用的方式)

第二種方法:數學公式(直接用國中數學公式來計算)

公式 SUM = [ N*(N+1) / 2 ] * [ K*(K+1) / 2 ]

//Power by Eclipse v3.2
import java.io.*;
//類別檔名 TEST_JAVA.java
public class TEST_JAVA
{
public static void main(String[] args)
{
//==========START==========//
PrintStream p=new PrintStream(System.out);
int x,y,sum=0;
for(x=1;x<=9;x++)
{
for(y=1;y<=9;y++)
{
sum+=x*y;//第一種方法:累加
System.out.println(x + "*" + y + "=" + (x*y));
}
}
p.printf("Count= %d\n",sum);//顯示第一種方法
p.printf("Formula= %.0f\n",sumof99(9,9));//顯示第二種方法
//==========END==========//
}
//第二種方法:數學公式
public static double sumof99(double n, double k)
{
return n*k*(n+1)*(k+1)/4;
}
}



2007-07-05 21:32:01 補充:
利用迴圈顯示 1~9 的每一個總和
PrintStream p=new PrintStream(System.out); //輸出物件
//迴圈
for(int i=0;i<9;i++)
{
p.printf("sum of %d= %.0f\n",i+1,sumofx9(i+1));
}
//函式
public static double sumofx9(double n)
{
return 45*n;
}

2007-07-05 21:33:58 補充:
上面我回答的程式碼,都有測試過,請自行複製貼上再編譯。

2007-07-06 15:35:43 補充:
以 1 為舉例:

1*1+1*2+...+1*9
= 1*( 1+2+...+9 )
= 1* [ 9*(9+1) / 2 ]
=1* 45

使用多個迴圈可能降低程式執行的效率,所以直接用數學公式計算。
2007-07-05 10:59 pm
public class test {
public static void main(String[] args) {
int x,y,sum=0;
for(x=1;x<=9;x++){
for(y=1;y<=9;y++)
{
System.out.println(x + "*" + y + "=" + (x*y));
sum=sum+(x*y);
}

}
System.out.println("總合為: "+sum);
}
}

你是要這個嗎

2007-07-05 18:51:38 補充:
int x,y,j=0,sum=0;

{
System.out.println(x + "*" + y + "=" + (x*y));
j+=(x*y)/x; // 或j=j+(x*y)/x;
sum=sum+(x*y);
}
System.out.println();
System.out.println(x+"的總合為:"+j);
System.out.println();
}
System.out.println("全部的總合為: "+sum);
}
}

= =你自已加進去一下~不然有字數限制~
參考: , 自已


收錄日期: 2021-04-27 17:15:33
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070705000015KK05428

檢視 Wayback Machine 備份