這是我利用一些時間製作的賀年小短片,祝大家新年快樂!

文章標籤

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

  • 某停車場費率如下,試設計一程式計算費率(分段計費): 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) 人氣()

不管是在對的時間遇見不對的人,還是在不對的時間遇見對的人,都是美麗的錯誤,只能讓彼此留下淡淡的哀傷。

文章標籤

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

根據美國全國就業法,

文章標籤

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