1. 程式人生 > >java基礎知識簡單演算法題目

java基礎知識簡單演算法題目

**java 基礎程式設計題及其實現方式**


package javase.collection;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Random;
import java.util.Scanner;

/**
 * 
 * @author
萊格 */
public class Particities { /** * */ public static void main(String[] args) { syso(); System.out.println("-----------------我是分隔符---------------------"); buyClothy(); System.out.println("-----------------我是分隔符---------------------"); buyJi(); System.out.println("-----------------我是分隔符---------------------"
); buyJi2(); System.out.println("-----------------我是分隔符---------------------"); ChengFa(); System.out.println("-----------------我是分隔符---------------------"); ChengFaDao(); System.out.println("-----------------我是分隔符---------------------"); System.out.println(diGui(10
)); System.out.println("-----------------我是分隔符---------------------"); JudgeDays(); System.out.println("-----------------我是分隔符---------------------"); computJiShu(); System.out.println("-----------------我是分隔符---------------------"); printJiOu(); System.out.println("-----------------我是分隔符---------------------"); comput(); } /** * 方案1: 100文錢買100只小雞,公雞5文,母雞三文,小雞1文3只,買滿100只雞且,剛好100文錢,必須都包含3中雞。 * */ public static void buyJi() { for (int i = 1; i <= 18; i++) {// 控制公雞的數量 for (int j = 1; j <= 32; j++) {// 控制母雞的數量 for (int z = 1; z < 100; z++) {// 控制小雞的數量 if ((i + j + z) == 100 && (5 * i + 3 * j + z / 3) == 100 && z % 3 == 0) { System.out.println("一共買了" + i + "只公雞;" + j + "只母雞;" + z + "只小雞!"); } } } } } /** * 方案二: 針對方案一效率和效能不高的問題,定製了方案二 * */ public static void buyJi2() { for (int i = 1; i < 18; i++) {// 控制公雞的數量 for (int j = 1; j < 32; j++) {// 控制母雞的數量 int z = 100 - i - j;// 小雞的數量 if ((i + j + z) == 100 && (5 * i + 3 * j + z / 3) == 100 && z % 3 == 0) { System.out.println("一共買了" + i + "只公雞;" + j + "只母雞;" + z + "只小雞!"); } } } } /** * 買衣服示例 */ private static void buyClothy() { Scanner in = new Scanner(System.in); int num = 0; int j = 0; boolean flag = true; for (int i = 1; i <= 5; i++) { System.out.println("歡迎來到第" + i + "家店"); for (j = 1; j <= 3; j++) { System.out.println("輸入 1 購買一件衣服;2,去其他家店,3 有事回家"); int a = in.nextInt(); while (a < 0 || a > 3) { System.out.print("輸入有誤,請重新輸入:(請輸入1-3之間的數字,否則無法識別)"); a = in.nextInt(); } if (a == 1) { num++; } else if (a == 2) { // System.out.println(""); break; } else { flag = false; break; } } if (!flag) { break; } } System.out.println("您一共購買了" + num + "件衣服"); } /** * 列印菱形 */ private static void syso() { for (int i = 1; i < 5; i++) { for (int j = 14; j > i; j--) { System.out.print(" "); } for (int k = 0; k < 2 * i - 1; k++) { System.out.print("*"); } System.out.println(""); } for (int i = 1; i < 4; i++) { for (int j = 0; j < i + 10; j++) { System.out.print(" "); } for (int k = 7; k > 2 * i - 1; k--) { System.out.print("*"); } System.out.println(""); } } /** * 列印99乘法表 * */ public static void ChengFa() { for (int i = 1; i <= 9; i++) { for (int j = 1; j < i; j++) { System.out.print(j + "*" + i + "=" + (i * j) + "\t"); } System.out.println(); } } /** * 倒著列印99乘法表 * */ public static void ChengFaDao() { for (int i = 1; i <= 9; i++) { for (int j = 9; j > i; j--) { System.out.print(i + "*" + j + "=" + (i * j) + "\t"); } System.out.println(); } } /** * 使用遞迴完成階乘演算法 */ public static int diGui(int i) { if (i <= 0) { return 1; } return i * diGui(i - 1); } /** * 輸入月份,判斷天數 */ public static void JudgeDays() { Random r = new Random(); int n = r.nextInt(12) + 1; DateFormat df = new SimpleDateFormat("YYYY-MM"); Date d = null; try { d = df.parse("2017-" + n); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } Calendar c = new GregorianCalendar(); c.setTime(d); System.out.println("2017年" + n + "月有" + c.getActualMaximum(c.DAY_OF_MONTH) + "天"); } /** * 用while迴圈計算100以內的奇數和偶數 * */ public static void computJiShu() { int i = 1; int sum1 = 0; int sum2 = 0; while (i <= 100) { if (i % 2 == 0) { sum2 += i; } else { sum1 += i; } i++; } System.out.println("奇數和:" + sum1 + "偶數和:" + sum2); } /** * 用for迴圈列印1-1000之間能被5整除的數 */ public static void printJiOu() { int i = 0; int flag = 0; while (i < 1001) { if (i % 5 == 0) { System.out.print(i + " "); flag++; } if (flag == 3) { System.out.println(""); flag = 0; } i++; } } /** * 程式設計求:∑1+∑2+……+∑100 * */ public static void comput() { int sum = 0; for (int i = 1; i <= 100; i++) { for (int j = 1; j <= i; j++) { sum += j; } } System.out.println(sum); } /** * 生成0-100隨機數,直到生成88為止,停止迴圈! */ public void RandomShu() { while (true) { int n = (int) (Math.random() * 101); System.out.println(n); if (n == 88) { break; } } } /** * * */ }