java基礎知識簡單演算法題目
阿新 • • 發佈:2019-02-16
**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;
}
}
}
/**
*
* */
}