java中的循环题,提升逻辑思维能力
1.假设一张纸厚度为1mm,那么请问需要折多少次可以超过珠穆朗玛峰的高度?
public class Demo {
public static void main(String[] args) {
int zmlm = 8848; //定义珠穆朗玛峰的高度为8848米
int zhi = 1; //纸的厚度为1mm
zmlm = zmlm * 1000; //将珠穆朗玛峰的高度换算为mm
int count = 0; //初始化对折次数
for (;zhi<zmlm;zhi=zhi*2){
count++;
}
System.out.println(count);
}
}
2.百钱买百鸡,公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱?
public class Demo {
public static void main(String[] args) {
//2.百钱买百鸡,公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,
// 用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,
// 小鸡要买多少只刚好凑足100文钱?
for (int i = 0;i < 20;i++){ //公鸡最多买20只
for(int j = 0;j < 33;j++){ //母鸡最多买33只
for(int k = 0;k < 300;k++){ //小鸡最多买300只
if(i*5+j*3+k/3==100 && k%3==0 && i+j+k==100){
if(i!=0&&j!=0&&k!=0){
System.out.println("公鸡数量为"+i+"\t母鸡数量为"+j+"\t小鸡数量为"+k);
}
}
}
}
}
}
}
3.有一对兔子,从出生后第三个月开始每个月都生一对兔子,小兔子长三个月后每月又生一对兔子,假设所有的兔子都不死,一年后总共有多少对兔子?
public class Demo {
public static void main(String[] args) {
//首先我们先得知道他们的规律
//1,1,2,3,5,8,13
//规律在于没一个都是等于前面两个相加之和
//使用键盘录入
Scanner scan = new Scanner(System.in);
System.out.println("请输入月份:");
int i = scan.nextInt();
//字符串解析
int sum = getNum(i);//调用getNum(int num)静态方法方法,运算出兔子总数
System.out.println(sum);
}
public static int getNum(int i){
if((i)==1||(i==2)){
return 1;
}else{
return getNum(i -1) + getNum(i-2);
}
}
}
4.打印九九乘法表
public class Demo {
public static void main(String[] args) {
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();
}
}
}
5.打印杨辉三角
public class Demo {
public static void main(String[] args) {
// 定义数组的长度
Scanner scanner = new Scanner(System.in);
System.out.println("请输入需要打印杨辉三角的长度");
int length = scanner.nextInt();
int arr[][] = new int[length][];
// 遍历二维数组
for (int i = 0; i < arr.length; i++) {
// 确定二维数组元素的大小
arr[i] = new int[i+1];
// 打印空格
for (int j = 0; j < arr.length-i-1; j++) {
System.out.print(" ");
}
// 遍历一维数组
for (int j = 0; j < arr[i].length; j++) {
if(j == 0 || arr[i].length-1 == j) {
// 三角形两腰全为 1
arr[i][j] = 1;
}else {
// 其他元素等于两肩数字之和
arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
}
System.out.printf("%4d",arr[i][j]);
}
System.out.println();
}
}
}