Java基础练习题——数组和循环练习题
1. 编写一个九九乘法法 importjava.util.*; publicclass A { public static void main(String[] args) { for(int i=1;i<10;i++){//双重循环打印 for(intj=1;j<=i;j++){ System.out.print(+j+"*"+i+"="+(i*j)+"\t"); } System.out.println(); } } } 2. 百钱买百鸡,有100元钱,要去买100只鸡,公鸡5元一只,母鸡3元一只,小鸡1元3只,问公,母,小鸡各买多少只 提示: a+b+c=100 只 5a+3b+1/3c=100钱 importjava.util.*; publicclass A { public static void main(String[] args) { int i=0; int a,b,c; for(a=0;a<20;a++){//a是公鸡 for(b=0;b<34;b++){ //b是母鸡 c=100-a-b; if(5*a+b/3.+3*c==100){//判断是否满足 i++; System.out.printf("第%d种方法\n",i); System.out.println("公鸡买"+a+"只\n"+"母鸡买"+b+"只\n"+"小鸡买"+c+"只"); System.out.println(); } } } } } 3. 有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完 import java.util.*; public class A { public static void main(String[] args) { int num=1020,day=0; while(num>0){\\判断是否卖完 num=num/2-2; day++; } System.out.println(+day+"天以后能卖完"); } } 4. 猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃一个,以后每天都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子。求第一天共摘了多少个? import java.util.*; public class A { public static void main(String[] args) { int num=1; for(int i=1;i<10;i++)//循环乘九次 { num=(num+1)*2; } System.out.println("第一天共摘了"+num+"个桃子"); } } 5. 鸡兔同笼。鸡兔一共有50只,脚一共有160只,问鸡和兔各多少只?要求鸡兔至少一样一只 importjava.util.*; publicclass A { public static void main(String[] args) { int a=0,b=0; for(a=1;a<50;a++){//穷举出所有可能 { for(b=1;b<50;b++){ { if((2*a+4*b==160)&&(a+b==50)) System.out.println("鸡有"+a+"只\n"+"兔有"+b+"只\n"); break; } } } } 6. 有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对? 分析:兔子的规律为数列,1,1,2,3,5,8,13,21 importjava.util.*; publicclass A { public static void main(String[] args) { int sum=0; int i,a=1,b=1; for(i=3;i<=12;i++){ //后一个数等于前两个数之和 sum=a+b; a=b; b=sum; } System.out.println("一年内能繁殖"+sum+"对"); } } 7. 求300-400之间的素数 importjava.util.*; publicclass A { public static void main(String[] args) { int f=0; for(int i=300;i<401;i++){ for(intj=2;j<i;j++){ if(i%j==0){ //判断是否是素数 f=0; break; }else f=1; } if(f==1){ System.out.println(i); } } } } 8. 完成数组的排序(冒泡,插入,选择,快排,堆排均可) // 选择排序 import java.util.*; public class A { publicstatic void main(String[] args) { int[]a={10,20,11,35,6,89}; intx; for(inti=0;i<5;i++){//冒泡法 for(intj=i;j<5-i;j++){ {if(a[j]>a[j+1]){ x=a[j]; a[j]=a[j+1]; a[j+1]=x;} } } System.out.print(a[i]+""); } System.out.println(); } }
593





