目前分類:今天JAVA了嗎 (23)

瀏覽方式: 標題列表 簡短摘要
  • 某停車場費率如下,試設計一程式計算費率(分段計費): 2小時以內,每半小時30元 超過2小時未滿4小時,每半小時40元 超過4小時以上,每半小時60元 未滿半小時部分不計費
public class P4_8_1 {      public static void main(String[] args) {
             // 設定開始停車時間(分)           int start = 10 * 60 + 23;
             // 設定結束停車時間(分)           int end = 10 * 15 + 20;
             // 計算停車總時間(分)                // 結束時間-開始時間即為停車時間           int time = start - end;
             // 停車總時間除以60即為時數         int hour = time / 60;
             // 停車總時間除以60取餘數即為分數              int min = time % 60;          int sum = 0;
             // 半小時為一個計算單位                // time總時間除以30分鐘若小於等於4個單位                // 以每單位30元計費,將結果指定給sum               if (time / 30 <= 4) {                      sum = (time / 30) * 30;               }
             // 半小時為一個計算單位                // time總時間除以30分鐘若大於4個單位,小於等於8個單位         // 4個單位以下(含)每單位30元計費             // time總時間除以30減掉4後以每單位40元計費              // 將兩者相加後指定給sum              if (time / 30 <= 8 & time / 30 > 4) {                       sum = (4 * 30) + (((time / 30) - 4) * 40);            }
             // 半小時為一個計算單位                // time總時間除以30分鐘若大於8個單位          // 4個單位(含)以下每單位30元計費             // 5-8個(含)以下以每單位40元計費            // time總時間除以30減掉8後以每單位60元計費              // 將三者相加後指定給sum              if (time / 30 > 8) {                       sum = (4 * 30) + (4 * 40) + (((time / 30) - 8) * 60);         }
             System.out.printf("您好,您於早上10點23分開始停車,至下午3點20分離                 開,\n共停了 %d 小時 %d 分鐘,", hour, min);           System.out.printf("總共 %d 元,謝謝!", sum);        }}
  • 輸出結果(分段計費):
您好,您於早上10點23分開始停車,至下午3點20分離開,
共停了 7 小時 33 分鐘,總共 700 元,謝謝!

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 某停車場費率如下,試設計一程式計算費率(不分段計費): 2小時以內,每半小時30元 超過2小時未滿4小時,每半小時40元 超過4小時以上,每半小時60元 未滿半小時部分不計費
public class P4_8 {        public static void main(String[] args) {
             // 設定開始停車時間(分)           int start = 10 * 60 + 23;
             // 設定結束停車時間(分)           int end = 10 * 15 + 20;
             // 計算停車總時間(分)            // 結束時間-開始時間即為停車時間            int time = start - end;
             // 停車總時間除以60即為時數         int hour = time / 60;
             // 停車總時間除以60取餘數即為剩餘分數            int min = time % 60;          int sum = 0;
             // 半小時為一個計算單位                // time總時間除以30分鐘若小於等於4個單位                // 以每單位30元計費,將結果指定給sum               if (time / 30 <= 4) {                      sum = (time / 30) * 30;               }
             // 半小時為一個計算單位                // time總時間除以30分鐘若大於4個單位,小於等於8個單位         // 以每單位40元計費,將結果指定給sum               if (time / 30 <= 8 & time / 30 > 4) {                       sum = (time / 30) * 40;               }
             // 半小時為一個計算單位                // time總時間除以30分鐘若大於8個單位          // 以每單位60元計費,將結果指定給sum               if (time / 30 > 8) {                       sum = (time / 30) * 60;               }
             System.out.printf("您好,您於早上10點23分開始停車,至下午3點20分離
                開,\n總共停了 %d 小時 %d 分鐘", hour, min);            System.out.printf("總共 %d 元,謝謝!", sum);        }}
  • 輸出結果(不分段計費):
您好,您於早上10點23分開始停車,至下午3點20分離開,共停了 7 小時 33 分鐘,總共 900 元,謝謝!

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 籠子裡有雞兔,只知道共有26隻腳,8個頭,求雞兔各有幾隻?
import java.util.Scanner;public class P4_7 {     public static void main(String[] args) {
             Scanner scn = new Scanner(System.in);         System.out.println("請輸入共有幾隻腳?");              int foot = scn.nextInt();             System.out.println("輕輸入共有幾個頭?");              int head = scn.nextInt();
             // 利用for迴圈將可能的雞兔組合都測試過一次             // 答案只有一個,只有符合總腳隻數量之雞兔組合才正確          for (int i = 1; i < head; i++) {           if (((i * 4) + ((head - i) * 2)) == foot) {           System.out.printf("兔子有 %d 隻,小雞有 %d 隻", i, (head - i));                        }             }             scn.close();  }}
  • 輸出結果(這裡需要輸入是程式可作為解題用):
請輸入共有幾隻腳?26輕輸入共有幾個頭?8兔子有 5 隻,小雞有 3 隻

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 甲乙相距 n 公里,甲行進時速 x 公里,乙行進時速 y 公里,計算相遇時間
n=2000, x=15, y=19,亦即 (15+19) * hour >=2000
文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 火車站之自動售票機接受50元、10元、5元、1元的硬幣,試寫出一個程式,算出購買127元之車票時,所需投入幣數最少之組合及其數量(速算法)。
import java.util.Scanner;public class P4_1 {     public static void main(String[] args) {
/* * 金額縮到50元來說明會比較簡單些, 硬幣總類也先縮減到10元、5元、1元三種, 組合方程式為 * 10X+5Y+Z=50,可能的組合會有(x,y,x): (5,0,0)=5 (4,2,0)=6 (3,4,0)=7 (2,6,0)=8 * (1,8,0)=9 (4,1,5)=10 (0,10,0)=10 (3,3,5)=11 (2,5,5)=12 (1,7,5)=13 (0,9,5)=14 * (3,2,10)=15 (2,4,10)=16 (1,6,10)=17 (0,8,10)=18 (3,1,15)=19 (2,3,15)=20 * (1,5,15)=21 (0,7,15)=22 (3,0,20)=23 (2,2,20)=24 (1,4,20)=25 (0,6,20)=26 * (2,1,25)=28 (1,3,25)=29 (0,5,25)=30 (2,0,30)=32 (1,2,30)=33 (0,4,30)=34 * (1,1,35)=37 (0,3,35)=38 (1,0,40)=41 (0,2,40)=42 (0,1,45)=46 (0,0,50)=50 *  * 從組合可看出一現象,1元硬幣所佔比重愈大時,總幣數增加, * 反之,10元硬幣所佔比重愈大時,總幣數減少, * 所以並不需要每個組合都去驗證,先將幣數分配給最大幣值之硬幣, * 剩餘之數再分配各次大幣值之硬幣,依此類推,即可找出最少幣數之組合。 * 此方法結果和用for迴圈一樣,缺點是無法逐一印出全部符合之組合 */            int coin50n, coin10n, coin5n, coin1n;         coin50n = coin10n = coin5n = coin1n = 0;              Scanner scn = new Scanner(System.in);         System.out.println("請輸入要計算的金額:");             int amount = scn.nextInt();
             // 如果amount大於等於50,將amount除以50後之商指定給coin50n           // 將amount除以50取餘數指定給amount,如57/50=1...7,         // 1指定給coin50n, 代表50元之硬幣數為1個,7指定給amount              if (amount >= 50) {                        coin50n = amount / 50;                        amount = amount % 50;         }
             // 經重新指定之amount如大於等於10               // 將amount除以10之商指定給coin10n,餘數指定給amount               if (amount >= 10) {                        coin10n = amount / 10;                        amount = amount % 10;         }
             // 經重新指定之amount如大於等於5                // 將amount除以5之商指定給coin5n,餘數指定給amount         if (amount >= 5) {                 coin5n = amount / 5;                  amount = amount % 5;          }
             // 剩餘之amount即為1元硬幣之數             coin1n = amount;
             System.out.printf("最小數量組合為:\n50元硬幣%d個\n10元硬幣%d個\n5元硬幣%d個\n1元硬幣%d個\n", coin50n, coin10n, coin5n, coin1n);              System.out.println("硬幣總共" + (coin50n + coin10n + coin5n + coin1n) + "個");             scn.close();  }}
  • 輸出結果:
請輸入要計算的金額:127最小數量組合為:50元硬幣2個10元硬幣2個5元硬幣1個1元硬幣2個硬幣總共7個

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 火車站之自動售票機接受50元、10元、5元、1元的硬幣,試寫出一個程式,算出購買127元之車票時,所需投入幣數最少之組合及其數量。
import java.util.Scanner;public class P4_1_1 {   public static void main(String[] args) {
     Scanner scn = new Scanner(System.in); System.out.println("請輸入要計算的金額:");     int amount = scn.nextInt();   int c50n, c10n, c5n, c1n, sum = amount;       c50n = c10n = c5n = c1n = 0;
     System.out.println("符合之組合有:\n");
     // 利用for迴圈,將所有組合列出來
     // 50元硬幣之最大可能數,amount除以50之商      for (int i = 0; i <= (amount / 50); i++) {
     // 10元硬幣之最大可能數,amount除以10之商      for (int j = 0; j <= (amount / 10); j++) {
     // 5元硬幣之最大可能數,amount除以50之商       for (int k = 0; k <= (amount / 5); k++) {
     // 1元硬幣之最大可能數,amount除以1之商        for (int l = 0; l <= (amount / 1); l++) {
     // 組合之值必須等於amount才是我們要找的組合       if ((50 * i + 10 * j + 5 * k + l) == amount) {
        // 印出符合之組合        System.out.printf("( %d , %d , %d , %d )=         %d\n", i, j, k, l, (i + j + k + l));
       // 將符合之組合裡總幣數最少之組合,各幣值個數記錄下來   if (sum >= (i + j + k + l)) {      sum = (i + j + k + l);        c50n = i;     c10n = j;     c5n = k;      c1n = l;        }            }                }                    }                         }                         }  System.out.println();               //印出幣數最少之組合      System.out.printf("最少硬幣組合為:\n( %d , %d , %d , %d )= %d\n", c50n, c10n, c5n, c1n, (c50n + c10n + c5n + c1n));  System.out.printf("50元硬幣%2d個\n10元硬幣%2d個\n 5元硬幣%2d個\n 1元硬幣%2d個\n總計%d元", c50n, c10n, c5n, c1n,(50 * c50n + 10 * c10n + 5 * c5n + c1n));         scn.close();  }}
  • 輸出結果:
請輸入要計算的金額:127符合之組合有:
( 0 , 0 , 0 , 127 )= 127( 0 , 0 , 1 , 122 )= 123( 0 , 0 , 2 , 117 )= 119( 0 , 0 , 3 , 112 )= 115( 0 , 0 , 4 , 107 )= 111( 0 , 0 , 5 , 102 )= 107( 0 , 0 , 6 , 97 )= 103( 0 , 0 , 7 , 92 )= 99( 0 , 0 , 8 , 87 )= 95( 0 , 0 , 9 , 82 )= 91( 0 , 0 , 10 , 77 )= 87( 0 , 0 , 11 , 72 )= 83( 0 , 0 , 12 , 67 )= 79( 0 , 0 , 13 , 62 )= 75( 0 , 0 , 14 , 57 )= 71( 0 , 0 , 15 , 52 )= 67( 0 , 0 , 16 , 47 )= 63( 0 , 0 , 17 , 42 )= 59( 0 , 0 , 18 , 37 )= 55( 0 , 0 , 19 , 32 )= 51( 0 , 0 , 20 , 27 )= 47( 0 , 0 , 21 , 22 )= 43( 0 , 0 , 22 , 17 )= 39( 0 , 0 , 23 , 12 )= 35( 0 , 0 , 24 , 7 )= 31( 0 , 0 , 25 , 2 )= 27( 0 , 1 , 0 , 117 )= 118( 0 , 1 , 1 , 112 )= 114( 0 , 1 , 2 , 107 )= 110( 0 , 1 , 3 , 102 )= 106( 0 , 1 , 4 , 97 )= 102( 0 , 1 , 5 , 92 )= 98( 0 , 1 , 6 , 87 )= 94( 0 , 1 , 7 , 82 )= 90( 0 , 1 , 8 , 77 )= 86( 0 , 1 , 9 , 72 )= 82( 0 , 1 , 10 , 67 )= 78( 0 , 1 , 11 , 62 )= 74( 0 , 1 , 12 , 57 )= 70( 0 , 1 , 13 , 52 )= 66( 0 , 1 , 14 , 47 )= 62( 0 , 1 , 15 , 42 )= 58( 0 , 1 , 16 , 37 )= 54( 0 , 1 , 17 , 32 )= 50( 0 , 1 , 18 , 27 )= 46( 0 , 1 , 19 , 22 )= 42( 0 , 1 , 20 , 17 )= 38( 0 , 1 , 21 , 12 )= 34( 0 , 1 , 22 , 7 )= 30( 0 , 1 , 23 , 2 )= 26( 0 , 2 , 0 , 107 )= 109( 0 , 2 , 1 , 102 )= 105( 0 , 2 , 2 , 97 )= 101( 0 , 2 , 3 , 92 )= 97( 0 , 2 , 4 , 87 )= 93( 0 , 2 , 5 , 82 )= 89( 0 , 2 , 6 , 77 )= 85( 0 , 2 , 7 , 72 )= 81( 0 , 2 , 8 , 67 )= 77( 0 , 2 , 9 , 62 )= 73( 0 , 2 , 10 , 57 )= 69( 0 , 2 , 11 , 52 )= 65( 0 , 2 , 12 , 47 )= 61( 0 , 2 , 13 , 42 )= 57( 0 , 2 , 14 , 37 )= 53( 0 , 2 , 15 , 32 )= 49( 0 , 2 , 16 , 27 )= 45( 0 , 2 , 17 , 22 )= 41( 0 , 2 , 18 , 17 )= 37( 0 , 2 , 19 , 12 )= 33( 0 , 2 , 20 , 7 )= 29( 0 , 2 , 21 , 2 )= 25( 0 , 3 , 0 , 97 )= 100( 0 , 3 , 1 , 92 )= 96( 0 , 3 , 2 , 87 )= 92( 0 , 3 , 3 , 82 )= 88( 0 , 3 , 4 , 77 )= 84( 0 , 3 , 5 , 72 )= 80( 0 , 3 , 6 , 67 )= 76( 0 , 3 , 7 , 62 )= 72( 0 , 3 , 8 , 57 )= 68( 0 , 3 , 9 , 52 )= 64( 0 , 3 , 10 , 47 )= 60( 0 , 3 , 11 , 42 )= 56( 0 , 3 , 12 , 37 )= 52( 0 , 3 , 13 , 32 )= 48( 0 , 3 , 14 , 27 )= 44( 0 , 3 , 15 , 22 )= 40( 0 , 3 , 16 , 17 )= 36( 0 , 3 , 17 , 12 )= 32( 0 , 3 , 18 , 7 )= 28( 0 , 3 , 19 , 2 )= 24( 0 , 4 , 0 , 87 )= 91( 0 , 4 , 1 , 82 )= 87( 0 , 4 , 2 , 77 )= 83( 0 , 4 , 3 , 72 )= 79( 0 , 4 , 4 , 67 )= 75( 0 , 4 , 5 , 62 )= 71( 0 , 4 , 6 , 57 )= 67( 0 , 4 , 7 , 52 )= 63( 0 , 4 , 8 , 47 )= 59( 0 , 4 , 9 , 42 )= 55( 0 , 4 , 10 , 37 )= 51( 0 , 4 , 11 , 32 )= 47( 0 , 4 , 12 , 27 )= 43( 0 , 4 , 13 , 22 )= 39( 0 , 4 , 14 , 17 )= 35( 0 , 4 , 15 , 12 )= 31( 0 , 4 , 16 , 7 )= 27( 0 , 4 , 17 , 2 )= 23( 0 , 5 , 0 , 77 )= 82( 0 , 5 , 1 , 72 )= 78( 0 , 5 , 2 , 67 )= 74( 0 , 5 , 3 , 62 )= 70( 0 , 5 , 4 , 57 )= 66( 0 , 5 , 5 , 52 )= 62( 0 , 5 , 6 , 47 )= 58( 0 , 5 , 7 , 42 )= 54( 0 , 5 , 8 , 37 )= 50( 0 , 5 , 9 , 32 )= 46( 0 , 5 , 10 , 27 )= 42( 0 , 5 , 11 , 22 )= 38( 0 , 5 , 12 , 17 )= 34( 0 , 5 , 13 , 12 )= 30( 0 , 5 , 14 , 7 )= 26( 0 , 5 , 15 , 2 )= 22( 0 , 6 , 0 , 67 )= 73( 0 , 6 , 1 , 62 )= 69( 0 , 6 , 2 , 57 )= 65( 0 , 6 , 3 , 52 )= 61( 0 , 6 , 4 , 47 )= 57( 0 , 6 , 5 , 42 )= 53( 0 , 6 , 6 , 37 )= 49( 0 , 6 , 7 , 32 )= 45( 0 , 6 , 8 , 27 )= 41( 0 , 6 , 9 , 22 )= 37( 0 , 6 , 10 , 17 )= 33( 0 , 6 , 11 , 12 )= 29( 0 , 6 , 12 , 7 )= 25( 0 , 6 , 13 , 2 )= 21( 0 , 7 , 0 , 57 )= 64( 0 , 7 , 1 , 52 )= 60( 0 , 7 , 2 , 47 )= 56( 0 , 7 , 3 , 42 )= 52( 0 , 7 , 4 , 37 )= 48( 0 , 7 , 5 , 32 )= 44( 0 , 7 , 6 , 27 )= 40( 0 , 7 , 7 , 22 )= 36( 0 , 7 , 8 , 17 )= 32( 0 , 7 , 9 , 12 )= 28( 0 , 7 , 10 , 7 )= 24( 0 , 7 , 11 , 2 )= 20( 0 , 8 , 0 , 47 )= 55( 0 , 8 , 1 , 42 )= 51( 0 , 8 , 2 , 37 )= 47( 0 , 8 , 3 , 32 )= 43( 0 , 8 , 4 , 27 )= 39( 0 , 8 , 5 , 22 )= 35( 0 , 8 , 6 , 17 )= 31( 0 , 8 , 7 , 12 )= 27( 0 , 8 , 8 , 7 )= 23( 0 , 8 , 9 , 2 )= 19( 0 , 9 , 0 , 37 )= 46( 0 , 9 , 1 , 32 )= 42( 0 , 9 , 2 , 27 )= 38( 0 , 9 , 3 , 22 )= 34( 0 , 9 , 4 , 17 )= 30( 0 , 9 , 5 , 12 )= 26( 0 , 9 , 6 , 7 )= 22( 0 , 9 , 7 , 2 )= 18( 0 , 10 , 0 , 27 )= 37( 0 , 10 , 1 , 22 )= 33( 0 , 10 , 2 , 17 )= 29( 0 , 10 , 3 , 12 )= 25( 0 , 10 , 4 , 7 )= 21( 0 , 10 , 5 , 2 )= 17( 0 , 11 , 0 , 17 )= 28( 0 , 11 , 1 , 12 )= 24( 0 , 11 , 2 , 7 )= 20( 0 , 11 , 3 , 2 )= 16( 0 , 12 , 0 , 7 )= 19( 0 , 12 , 1 , 2 )= 15( 1 , 0 , 0 , 77 )= 78( 1 , 0 , 1 , 72 )= 74( 1 , 0 , 2 , 67 )= 70( 1 , 0 , 3 , 62 )= 66( 1 , 0 , 4 , 57 )= 62( 1 , 0 , 5 , 52 )= 58( 1 , 0 , 6 , 47 )= 54( 1 , 0 , 7 , 42 )= 50( 1 , 0 , 8 , 37 )= 46( 1 , 0 , 9 , 32 )= 42( 1 , 0 , 10 , 27 )= 38( 1 , 0 , 11 , 22 )= 34( 1 , 0 , 12 , 17 )= 30( 1 , 0 , 13 , 12 )= 26( 1 , 0 , 14 , 7 )= 22( 1 , 0 , 15 , 2 )= 18( 1 , 1 , 0 , 67 )= 69( 1 , 1 , 1 , 62 )= 65( 1 , 1 , 2 , 57 )= 61( 1 , 1 , 3 , 52 )= 57( 1 , 1 , 4 , 47 )= 53( 1 , 1 , 5 , 42 )= 49( 1 , 1 , 6 , 37 )= 45( 1 , 1 , 7 , 32 )= 41( 1 , 1 , 8 , 27 )= 37( 1 , 1 , 9 , 22 )= 33( 1 , 1 , 10 , 17 )= 29( 1 , 1 , 11 , 12 )= 25( 1 , 1 , 12 , 7 )= 21( 1 , 1 , 13 , 2 )= 17( 1 , 2 , 0 , 57 )= 60( 1 , 2 , 1 , 52 )= 56( 1 , 2 , 2 , 47 )= 52( 1 , 2 , 3 , 42 )= 48( 1 , 2 , 4 , 37 )= 44( 1 , 2 , 5 , 32 )= 40( 1 , 2 , 6 , 27 )= 36( 1 , 2 , 7 , 22 )= 32( 1 , 2 , 8 , 17 )= 28( 1 , 2 , 9 , 12 )= 24( 1 , 2 , 10 , 7 )= 20( 1 , 2 , 11 , 2 )= 16( 1 , 3 , 0 , 47 )= 51( 1 , 3 , 1 , 42 )= 47( 1 , 3 , 2 , 37 )= 43( 1 , 3 , 3 , 32 )= 39( 1 , 3 , 4 , 27 )= 35( 1 , 3 , 5 , 22 )= 31( 1 , 3 , 6 , 17 )= 27( 1 , 3 , 7 , 12 )= 23( 1 , 3 , 8 , 7 )= 19( 1 , 3 , 9 , 2 )= 15( 1 , 4 , 0 , 37 )= 42( 1 , 4 , 1 , 32 )= 38( 1 , 4 , 2 , 27 )= 34( 1 , 4 , 3 , 22 )= 30( 1 , 4 , 4 , 17 )= 26( 1 , 4 , 5 , 12 )= 22( 1 , 4 , 6 , 7 )= 18( 1 , 4 , 7 , 2 )= 14( 1 , 5 , 0 , 27 )= 33( 1 , 5 , 1 , 22 )= 29( 1 , 5 , 2 , 17 )= 25( 1 , 5 , 3 , 12 )= 21( 1 , 5 , 4 , 7 )= 17( 1 , 5 , 5 , 2 )= 13( 1 , 6 , 0 , 17 )= 24( 1 , 6 , 1 , 12 )= 20( 1 , 6 , 2 , 7 )= 16( 1 , 6 , 3 , 2 )= 12( 1 , 7 , 0 , 7 )= 15( 1 , 7 , 1 , 2 )= 11( 2 , 0 , 0 , 27 )= 29( 2 , 0 , 1 , 22 )= 25( 2 , 0 , 2 , 17 )= 21( 2 , 0 , 3 , 12 )= 17( 2 , 0 , 4 , 7 )= 13( 2 , 0 , 5 , 2 )= 9( 2 , 1 , 0 , 17 )= 20( 2 , 1 , 1 , 12 )= 16( 2 , 1 , 2 , 7 )= 12( 2 , 1 , 3 , 2 )= 8( 2 , 2 , 0 , 7 )= 11( 2 , 2 , 1 , 2 )= 7
最少硬幣組合為:( 2 , 2 , 1 , 2 )= 750元硬幣 2個10元硬幣 2個 5元硬幣 1個 1元硬幣 2個總計127元

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

輸入任一等比級數計算其總和(首項為2,公比為2,項次為10): 如:2,4,8,16,32,64,128,256,512,1024
文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 某公司銷售5種產品,目前有3位銷售人員,下表是該月份的銷售量表,產品單價為:產品A(12元),產品B(16元),產品C(10元),產品D(14元),產品E(15元),列印出下表內容。
  1. 每個銷售員之銷售總金額
  2. 每一項產品的銷售總金額
  3. 最佳銷售員(依銷售金額)
  4. 最佳銷售產品(依銷售金額)

-002.jpg

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 印出表格中內容,求每日平均溫度、各時段平均溫度

-001.jpg

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 給定任意10個數字,印出這10個數字,計算奇數和偶數各有多少及其最大值
public class P613 {    public static void main(String[] args) {
             // 給定之10個數字,以矩陣存放                int[] a = { 53, 27, 69, 12, 3, 96, 100, 214, 33, 87 };
             // count 存放偶數個數          int count = 0, odd, even;
             // odd 存放奇數最大值               // even 存放偶數最大值          // 並將兩者初始值設定為矩陣第一個元素值a[0]            odd = even = a[0];
             // 使用for迴圈逐一判斷a矩陣各元素是否為偶數                for (int i = 0; i < a.length; i++) {
                     // 如a[i]為偶數,count加1                  // 進if判斷a[i]是否大於even值                    // 是,a[i]值指定給even                    if (a[i] % 2 == 0) {                          count++;                              if (a[i] > even) {                                 even = a[i];                          }
                             // 當a[i]不是偶數,進else if                                // 判斷a[i]是否大於odd值                                // 是,a[i]值指定給odd                     } else if (a[i] > odd) {                           odd = a[i];                   }
                     // 印出各值                  System.out.print(a[i] + " ");         }
             System.out.println();         System.out.println("陣列共有偶數: " + count + " 個");
             // count值為偶數個數,要知道奇數個數               // 只要用全部個數(a.length取得矩陣元素個數)減掉偶數個數(count)即可          System.out.println("陣列共有奇數: " + (a.length - count) + " 個");           System.out.println("陣列裡奇數最大值為: " + odd);              System.out.println("陣列裡偶數最大值為: " + even);     }}
  • 輸出結果:
53 27 69 12 3 96 100 214 33 87 陣列共有偶數: 4 個陣列共有奇數: 6 個陣列裡奇數最大值為: 87陣列裡偶數最大值為: 214

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 設計一程式,依照以下公式及代入值計算sum之值,並將結果印出
文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 輸入任意5個數字,找出最大值和最小值
import java.util.Scanner;public class tggrug_P217 {  public static void main(String[] args) {              int min, max;         Scanner scn = new Scanner(System.in);
             // 由鍵盤讀入5個整數             System.out.println("請輸入第1個數字:");              int n1 = scn.nextInt();
             System.out.println("請輸入第2個數字:");              int n2 = scn.nextInt();
             System.out.println("請輸入第3個數字:");              int n3 = scn.nextInt();
             System.out.println("請輸入第4個數字:");              int n4 = scn.nextInt();
             System.out.println("請輸入第5個數字:");              int n5 = scn.nextInt();               scn.close();
             // 初始化           max = min = n1;
             // 演算法 A             // 如 n1(10),n2(30),n3(20),n4(5),n5(50),max和min初始化為n1值(10)                // n1(10)和max(10)相等,max值10,min值10                // n2(30)和max(10)n2大,n2指給max,max值30,min值10               // n3(20)和max(30)max大,n3和min比,n3大,max值30,min值10          // n4(5)和max(30)max大,n4和min比,n4小,n4指給min,max值30,min值5            // n5(50)和max(30)n5大,n5指給max ,max值50,min值5               // 最大值max為n5(50),最小值min為n4(5)
             if (n1 >= max) {                   max = n1;             } else if (n1 <= min) {                    min = n1;             }
             // n2         if (n2 >= max) {                   max = n2;             } else if (n2 <= min) {                    min = n2;             }
             if (n3 >= max) {                   max = n3;             } else if (n3 <= min) {                    min = n3;             }
             if (n4 >= max) {                   max = n4;             } else if (n4 <= min) {                    min = n4;             }
             if (n5 >= max) {                   max = n5;             } else if (n5 <= min) {                    min = n5;             }
             System.out.println("最大值為(逐行if): " + max);             System.out.println("最小值為(逐行if): " + min);
             // 演算法 B             // 和上面的基本邏輯相同,不同在於利用矩陣和for迴圈,大量縮減程式碼         int arr[] = { n1, n2, n3, n4, n5 };           max = min = arr[0];
             for (int i = 0; i <= 4; i++) {                     if (arr[i] >= max) {                               max = arr[i];                 } else if (arr[i] <= min)                          min = arr[i];         }             System.out.println("最大值為(陣列+if): " + max);            System.out.println("最小值為(陣列+if): " + min);    }}
  • 輸出結果:
請輸入第1個數字:15請輸入第2個數字:10請輸入第3個數字:99請輸入第4個數字:35請輸入第5個數字:47最大值為(逐行if): 99最小值為(逐行if): 10最大值為(陣列+if): 99最小值為(陣列+if): 10

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 輸入某數,印出小於該數之所有質數、質數個數、最大質數
import java.util.Scanner;public class P5418 {        public static void main(String[] args) {              Scanner scn = new Scanner(System.in);         System.out.println("請輸入一個正整數:");              int input = scn.nextInt();
             // count 被整除之次數              // sum 質數個數              // max 質數最大值         int count, sum, max;          count = sum = max = 0;
             // 判斷輸入數字是否為正整數              // 附條件無限迴圈,停止條件成立,終止迴圈               for (int i = 1; i > 0; i++) {                      // 輸入0或負數,重新輸入                   if (input < 1) {                           System.out.println("請輸入大於0之正整數:");                            input = scn.nextInt();                        } else {                              // 輸入正數,i值改為-1,停止迴圈                              i = -1;                               System.out.println("您輸入之數字為 " + input);                               System.out.print("質數有:");                             scn.close();                  }             }
             // 判斷質數              // i迴圈為界定數字範圍,輸入100,即從1測試至100(小於100之數字)              for (int i = 1; i <= input; i++) {                 // count值為共用,判斷前須先將count值歸0                      count = 0;
                     // j迴圈,判斷數字(i值)是否為質數                 // 如i=5,由1測試至5(j=1,j<=i)                      // 若能整除,count值加1,質數只能被1和質數本身整除                   // 5若為質數,只能被1和5整除,count值必不大於3                        for (int j = 1; j <= i; j++) {                             if (i % j == 0) {                                     count++;                              }                     }
                     // 印出count值小於3之i值(即質數)                       // sum值加1,i值指定給max                   if (count < 3) {                           System.out.print(" " + i + " ");                              sum++;                                // i值由小至大,最後之i值必為最大之質數                           max = i;                      }             }             System.out.println();         System.out.println("小於 " + input + " 的質數共有 " + sum + " 個");           System.out.println("最大質數為 " + max);   }}
  • 輸出結果:
請輸入一個正整數:1000您輸入之數字為 1000質數有: 1  2  3  5  7  11  13  17  19  23  29  31  37  41  43  47  53  59  61  67  71  73  79  83  89  97  101  103  107  109  113  127  131  137  139  149  151  157  163  167  173  179  181  191  193  197  199  211  223  227  229  233  239  241  251  257  263  269  271  277  281  283  293  307  311  313  317  331  337  347  349  353  359  367  373  379  383  389  397  401  409  419  421  431  433  439  443  449  457  461  463  467  479  487  491  499  503  509  521  523  541  547  557  563  569  571  577  587  593  599  601  607  613  617  619  631  641  643  647  653  659  661  673  677  683  691  701  709  719  727  733  739  743  751  757  761  769  773  787  797  809  811  821  823  827  829  839  853  857  859  863  877  881  883  887  907  911  919  929  937  941  947  953  967  971  977  983  991  997 小於 1000 的質數共有 169 個
最大質數為 997

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

利用break撰寫6位數密碼輸入過程,使用者有三次輸入機會:

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 輸入繩子長度,每一天剪一半,計算需花多少天之後,繩子長度會小於3公尺
import java.util.Scanner;public class P5414 {  public static void main(String[] args) {              Scanner scn = new Scanner(System.in);         System.out.println("請輸入繩子的長度:");
             // a 繩子長度變數              int a = scn.nextInt();
             // count 天數變數,起始值0               int count = 0;                scn.close();
             // 只要i值大於0,持續執行          for (int i = 1; i > 0; i++) {
             // 如減去一半長度仍大於等於3公尺           // 再將a減去一半(意思就是除以2)              // 列印天數(count值)及減半後長度(除以2後之a值)           // 剪完一次,count值加1(天數加1天)              if (a >= 3) {              a = (a / 2);          count++;              System.out.println("第" + count + "天,長度變為 " + a + "公尺");
             // 若繩子短於3公尺,中斷for迴圈              } else                        break;                }             System.out.println("總共需要 " + count + " 天");   }}
  • 執行結果(小數點不影響天數結果):
請輸入繩子的長度:3500第1天,長度變為 1750公尺第2天,長度變為 875公尺第3天,長度變為 437公尺第4天,長度變為 218公尺第5天,長度變為 109公尺第6天,長度變為 54公尺第7天,長度變為 27公尺第8天,長度變為 13公尺第9天,長度變為 6公尺第10天,長度變為 3公尺第11天,長度變為 1公尺總共需要 11 天

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 利用for迴圈印出九九乘法表
public class P5311 {     public static void main(String[] args) {              System.out.println("以下為九九乘法表(從左而右後從上而下):");
             // 執行i迴圈,i起始值1,執行後i值加1,i值為9時停止           for (int i = 1; i <= 9; i++) {
                     // 執行j迴圈,j起始值1,執行後j值加1,j值為9時停止                       // 第1次執行,i=1,j=1,輸出1x1=1,j<9,執行第二次                    // 第2次執行,i=1,j=2,輸出1x2=2,j<9,執行第三次                    // 第3次執行,i=1,j=3,輸出1x3=3,j<9,執行第四次                    // 依此類推...                       // 第9次執行,i=1,j=9,輸出1x9=9,j=9,停止迴圈                        // 跳出j迴圈,回i迴圈,i值加1後為2,i<9,再進入j迴圈                  for (int j = 1; j <= 9; j++) {                     System.out.print(i + "x" + j + "=" + (i * j) + " ");                  }                     // 斷行列印新行                        System.out.println();         }             System.out.println("以下為九九乘法表(從上而下後從左而右):");           for (int m = 1; m <= 9; m++) {
                     // 原理同上,只是輸出位置調換                 for (int n = 1; n <= 9; n++) {                     System.out.print(n + "x" + m + "=" + (n * m) + " ");                  }                     System.out.println();         }     }}
  • 輸出結果1:
以下為九九乘法表(從左而右後從上而下):1x1=1 1x2=2 1x3=3 1x4=4 1x5=5 1x6=6 1x7=7 1x8=8 1x9=9 2x1=2 2x2=4 2x3=6 2x4=8 2x5=10 2x6=12 2x7=14 2x8=16 2x9=18 3x1=3 3x2=6 3x3=9 3x4=12 3x5=15 3x6=18 3x7=21 3x8=24 3x9=27 4x1=4 4x2=8 4x3=12 4x4=16 4x5=20 4x6=24 4x7=28 4x8=32 4x9=36 5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 5x6=30 5x7=35 5x8=40 5x9=45 6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 6x7=42 6x8=48 6x9=54 7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 7x8=56 7x9=63 8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 8x9=72 9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81 
  • 輸出結果2:
以下為九九乘法表(從上而下後從左而右):1x1=1 2x1=2 3x1=3 4x1=4 5x1=5 6x1=6 7x1=7 8x1=8 9x1=9 1x2=2 2x2=4 3x2=6 4x2=8 5x2=10 6x2=12 7x2=14 8x2=16 9x2=18 1x3=3 2x3=6 3x3=9 4x3=12 5x3=15 6x3=18 7x3=21 8x3=24 9x3=27 1x4=4 2x4=8 3x4=12 4x4=16 5x4=20 6x4=24 7x4=28 8x4=32 9x4=36 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 6x5=30 7x5=35 8x5=40 9x5=45 1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 7x6=42 8x6=48 9x6=54 1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 8x7=56 9x7=63 1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 9x8=72 1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81 

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

  • 利用for迴圈寫出能產生以下結果之程式:
112123123412345
  • 程式碼:
import java.util.Scanner;public class P5310 {  public static void main(String[] args) {              Scanner scn = new Scanner(System.in);         System.out.println("請輸入任一正整數:");              int a = scn.nextInt();                scn.close();
             // 第一次執行i迴圈,i為1,進j迴圈,j起始值1           // j迴圈執行條件 j<=i               // j須小於等於i才執行            // j=i=1,輸出j值1
             // 第二次執行i迴圈,i值2,進j迴圈,j起始值1           // j=1, j=2 小於等於i值2,j迴圈執行2次,輸出j值1和2              // 使用print(),不使用println(),前者連續印出,後者斷行印出
             for (int i = 1; i <= a; i++) {                     for (int j = 1; j <= i; j++) {                             System.out.print(j);                  }                     System.out.println();         }     }}
輸出結果(輸入9):
文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

輸入任一正整數,求小於該正整數所有整數平方值之和

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

輸入任一正整數,印出小於該正整數所有能被16整除之數:

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

鍵盤讀入一個數字,判斷其為偶數或奇數:

文章標籤

ALVIN 發表在 痞客邦 留言(0) 人氣()

1 2