1、我们在控制台里输出以下的图形
public static void main(String[] args) {
/*
* *
* ***
* *****
*/
//外层循环控制行数
for (int i = 1; i <= 3; i++) {
//输出每一行前面的空格“ ”
for (int j = 3-i; j >0; j--) {
System.out.print(" ");
}
//输出每一行的“*”
for (int k = 2*i-1; k >0; k--) {
System.out.print("*");
}
//换行
System.out.println();
}
}
public static void main(String[] args) {
/*
* ******
* ********
* **********
* ************
* **************
* ****************
* **************
* ************
* **********
* ********
* ******
*/
//上半截图形:外层循环控制行数
for (int i = 1; i <= 6; i++) {
//输出每一行前面的空格“ ”
for (int j = 6-i; j >0; j--) {
System.out.print(" ");
}
//输出每一行的“*”
for (int k = 2*i+4; k >0; k--) {
System.out.print("*");
}
//换行
System.out.println();
}
//下半截图形:外层循环控制行数
for (int i = 1; i <= 5; i++) {
//输出每一行前面的空格“ ”
for (int j = i; j >0; j--) {
System.out.print(" ");
}
//输出每一行的“*”
for (int k = 16-2*i; k >0; k--) {
System.out.print("*");
}
//换行
System.out.println();
}
}
public static void main(String[] args) {
/*
* *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* *
*/
//上半截图形:外层循环控制行数
System.out.println(" *");
for (int i = 1; i <= 8; i++) {
//输出每一行前面的空格“ ”
for (int j = 8-i; j >0; j--) {
System.out.print(" ");
}
//输出“*”
System.out.print("*");
//输出空格“ ”
for (int k = 2*i-1; k >0; k--) {
System.out.print(" ");
}
//输出“*”
System.out.println("*");
}
//下半截图形:外层循环控制行数
for (int i = 1; i <= 7; i++) {
//输出每一行前面的空格“ ”
for (int j = i; j >0; j--) {
System.out.print(" ");
}
//输出“*”
System.out.print("*");
//输出空格“ ”
for (int k = 15-2*i; k >0; k--) {
System.out.print(" ");
}
//输出“*”
System.out.println("*");
}
System.out.println(" *");
}
public static void main(String[] args) {
/*
* ***************
* ******* *******
* ****** ******
* ***** *****
* **** ****
* *** ***
* ** **
* * *
*/
//外层循环控制行数
System.out.println("***************");
for (int i = 1; i <= 7; i++) {
//输出每一行前面的“*”
for (int j = 8-i; j >0; j--) {
System.out.print("*");
}
//输出每一行的空格“ ”
for (int k = 2*i-1; k >0; k--) {
System.out.print(" ");
}
//输出每一行后面的“*”
for (int m = 8-i; m >0;m--) {
System.out.print("*");
}
//换行
System.out.println();
}
}
2、实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,从15个篮球中随机选择1个组成一注彩票。可以选择买多注。
/*
* 练习:实现双色球的彩票功能。规则:从33个红球中随机选择不重复的6个数,从16个篮球中随机选择1个组成一注彩票。可以选择买多注。
*/
public static void main(String[] args) {
// 输出篮球
int blueBall = (int) (Math.random() * 16 + 1);
// 输出红球
int redBall1 = (int) (Math.random() * 33 + 1);
int redBall2 = 0;
int redBall3 = 0;
int redBall4 = 0;
int redBall5 = 0;
int redBall6 = 0;
while (true) {
int redBall = (int) (Math.random() * 33) + 1;
if (redBall6 != 0) {// redBall6不等于0说明redBall6已经获得值了
break;// redBall6获得值了就退出循环
}
if (redBall != redBall1 && redBall2 == 0) {
redBall2 = redBall;
} else if (redBall != redBall1 && redBall != redBall2 && redBall3 == 0) {
redBall3 = redBall;
} else if (redBall != redBall1 && redBall != redBall2 && redBall != redBall3 && redBall4 == 0) {
redBall4 = redBall;
} else if (redBall != redBall1 && redBall != redBall2 && redBall != redBall3 && redBall != redBall4
&& redBall5 == 0) {
redBall5 = redBall;
} else if (redBall != redBall1 && redBall != redBall2 && redBall != redBall3 && redBall != redBall4
&& redBall != redBall5 && redBall6 == 0) {
redBall6 = redBall;
}
}
System.out.println(redBall1 + " " + redBall2 + " " + redBall3 + " " + redBall4 + " " + redBall5 + " " + redBall6
+ "---" + blueBall);
}
3、输出斐波那契数列数列的前20项
/*
* 练习:输出斐波那契数列数列的前20项
*
* 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda
* Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”, 指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……
* 规则:从第三个数开始,每一个数是前面两个数之和
*/
public static void main(String[] args) {
for (int counter = 0; counter <= 10; counter++) {
System.out.println(fibonacci(counter));
}
}
public static long fibonacci(long number) {
if ((number == 0) || (number == 1))
return number;
else
return fibonacci(number - 1) + fibonacci(number - 2);
}
4、将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?
public static void main(String[] args) {
/*
* 将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?
* */
//拿到这题时首先我们要知道1元不需要我们考虑,只要考虑10元和5元就行剩下的交给一元直接补满
int money = 100;
//这里定义一个变量用来存储多少种方法
int num = 0;
//这里十元的张数用i表示,这里五元的张数用j表示
for (int i=0;i<=10;i++){
for (int j=0;j<=20;j++){
if (i*10+j*5<=money){
num++;
}
}
}
System.out.println("有"+num+"种兑换方法");
}
5、用100元人民币兑换10元,5元,1元的纸币(每种都要有)共50张,计算有多少种兑换方案
public static void main(String[] args) {
/*
* 用100元人民币兑换10元,5元,1元的纸币(每种都要有)共50张,
* 计算有多少种兑换方案
* */
/*
* 拿到这题要考虑的东西就比较多了
* 1元也要加上考虑
* 10元5元1元都必须有,且总数不超过50张
* 那么10元和5元之和必须要大于等于60
* */
int money = 100;
//这里定义一个变量用来存储多少种方法
int num = 0;
//这里十元的张数用x表示,五元的张数用y表示,一元用z表示
int x;
int y;
int z;
for (x=1;x<=9;x++){
for (y=1;y<=17;y++){
if (x*10+y*5<money){
z = money -(x*10+y*5);
if (x+y+z<=50){
num++;
}
}
}
}
System.out.println("有"+num+"种兑换方法");
}
6、设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
public static void main(String[] args) {
/*
* 设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
* */
/*
* 这里我们已经知道有50瓶饮料,我们只需要计算一遍喝一遍换能换多少瓶就行。
* */
//用来统计换饮料的数量
int sun = 0;
//用来统计什么时候可以换饮料
int a = 0;
for (int i=1;i<=50+sun;i++){
a++;
if (a==3){
sun++;
a=0;
}
}
System.out.println("总共喝了"+(sun+50)+"瓶饮料");
}