乐透问题:
选10乐透的每张筹码都有10个取值范围在1-99的独特数字。假设你买了很多筹码,希望它们涵盖1-99的所有数字,可以重复。编写一个程序,从文件中读取筹码上的数字,并且检查是否涵盖所有的数。将文件中最后一个数设置为0。
public class TestOne {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter the numbers you need:");
boolean[] isCovered = new boolean[100];
int number = input.nextInt();
while(number!=0){
isCovered[number-1] = true;
number = input.nextInt();
}
boolean allCovered = true;
for(int i = 0;i<isCovered.length;i++){
if(!isCovered[i]){
allCovered = false;
break;
}
}
if(allCovered){
System.out.println("the tickets covered all number!");
}else{
System.out.println("the tickets don't covered all number!");
}
}
}
一副牌问题:
编写一个程序,从一副52张的牌中,随机抽取四张牌。
package com.example.testtwo;
public class TestTwo {
public static void main(String[] args){
int[] deck = new int[52];
String[] suits = new String[]{"Spades","Hearts","Diamands","Clubs"};
String[] ranks = new String[]{"Ace","2","3","4","5","6","7","8","9","10",
"Jack","Queen","King"};
for(int i = 0;i < deck.length;i++){
deck[i] = i;
}
for(int i = 0;i < deck.length;i++){
int index = (int)Math.random()*deck.length;
int temp = deck[i];
deck[i] = deck[index];
deck[index] = temp;
}
for(int i = 0;i < 4;i++){
String suit = suits[deck[i]/13];
String rank = ranks[deck[i]%13];
System.out.println("Card number" + deck[i]+" suit is "+ suit +
" rank is"+rank);
}
}
}
探究矩阵
编写程序,提示用户输入一方形矩阵,随机地在矩阵中填入1和0,打印这个矩阵,然后找出整行,整列或者对角线都是1或0的行、列和对角线。
import java.util.Scanner;
public class Exercise7_14 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter the length of a square matrix: ");
int n = input.nextInt();
int[][] board = new int[n][n];
boolean isSameOnARow = false, isSameOnAColumn = false,
isSameOnADiagonal = false, isSameOnASubdiagonal = false;
for (int i = 0; i < board.length; i++) {
for (int j = 0; j < board[0].length; j++) {
board[i][j] = (int) (Math.random() * 2);
System.out.print(board[i][j]);
}
System.out.println();
}
// Check rows
for (int i = 0; i < board.length; i++) {
boolean same = true;
for (int j = 1; j < board[0].length; j++) {
if (board[i][0] != board[i][j]) {
same = false;
break;
}
}
if (same) {
System.out.println("All " + board[i][0] + "'s on row " + i);
isSameOnARow = true;
}
}
// Check columns
for (int j = 0; j < board[0].length; j++) {
boolean same = true;
for (int i = 1; i < board.length; i++) {
if (board[0][j] != board[i][j]) {
same = false;
break;
}
}
if (same) {
System.out.println("All " + board[0][j] + "'s on column " + j);
isSameOnAColumn = true;
}
}
// Check major diagonal
boolean same = true;
for (int i = 1; i < board.length; i++) {
if (board[0][0] != board[i][i]) {
same = false;
break;
}
}
if (same) {
System.out.println("All " + board[0][0] + "'s on major diagonal");
isSameOnADiagonal = true;
}
// Check subdiagonal
same = true;
for (int i = 1; i < board.length; i++) {
if (board[0][board.length - 1] != board[i][board.length - 1 - i]) {
same = false;
break;
}
}
if (same) {
System.out.println("All " + board[0][board.length - 1] + "'s on sub-diagonal");
isSameOnASubdiagonal = true;
}
if (!isSameOnARow)
System.out.println("No same numbers on a row");
if (!isSameOnAColumn)
System.out.println("No same numbers on a column");
if (!isSameOnADiagonal)
System.out.println("No same numbers on the major diagonal");
if (!isSameOnASubdiagonal)
System.out.println("No same numbers on the sub-diagonal");
}
}