javaSE 循环练习题2
1、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
假如兔子都不死,问每个月的兔子总数为多少?
规律 1 1 2 3 5 8 13 21 ......(递归)
[code] public static void main(String[] args) { int month=20;//月份 for(int i=1;i<=month;i++) { System.out.println(ruub(i)); } } public static int ruub(int month) { int num=1; if(month==1||month==2) { num=1; }else { num=ruub(month-1)+ruub(month-2); } return num; }
2、输入两个正整数m和n,求其最大公约数和最小公倍数。 利用辗除法
[code] int m=86; int n=78; m=Math.abs(m); n=Math.abs(n); int max=m>n?m:n; int min=m<n?m:n; int y=0; while(min!=0&&max%min>0){ y=max%min; max=min; min=y; }; System.out.println("最大公约数:"+min); System.out.println("最小公倍数:"+min*(m<n?m:n));
3、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
[code] int shuzi=0; int zimu=0; int kge=0; int other=0; Scanner sc = new Scanner(System.in); String s = sc.nextLine(); char[] ch=s.toCharArray(); for(char c:ch) { if(c>='0'&&c<='9') { shuzi++; }else if(c>='a'&&c<='z'||c>='A'&&c<='Z'){ zimu++; }else if(c==' ') { kge++; }else { other++; } } System.out.println("数字个数:"+shuzi ); System.out.println("字母个数:"+zimu ); System.out.println("空格个数:"+kge ); System.out.println("其他个数:"+other );
4、一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
[code] int shu=123454321; length=String.valueOf(shu).length(); int[] arr_shu=new int[length]; int l=0; while(shu>0) { int yu=shu%10; shu=shu/10; l++; arr_shu[length-l]=yu; // System.out.print(yu); } boolean b=true; for(int e=0;e<length/2;e++) { if(arr_shu[e]!=arr_shu[length-1-e]) { b=false; } } if(b) { System.out.println("是回文数"); }else { System.out.println("不是回文数"); }
5 、求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制
[code]int a=2; int length=3; int sum=a; int item=a;//代表每一项的值 for(int i = 1; i < length; i++) { for(int j = 1;j <= i; j++) { item += a * Math.pow(10,j); } sum += item; //System.out.println(item); item=a; } System.out.println("求和:"+sum);
6、 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
[code]double height=100; int times=0;//次数 int endTimes=10; double total=height; while(height>0) { times++; height = height/2; System.out.println("第"+times+"次高度:"+height); total += height*2; if(times==endTimes) {//第十次终止 break; } } System.out.println("总高度:"+total); System.out.println("第"+endTimes+"次反弹高度为:"+height);
7 、 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列
[code]int[] arr= {1,2,3,4}; arr= new int[]{1,5,6,4}; int num=0; for(int i=0;i<4;i++) {//百 for(int j=0;j<arr.length;j++) { if(arr[i]!=arr[j]) { for(int k=0;k<arr.length;k++) { if(arr[i]!=arr[j]&&arr[i]!=arr[k]&&arr[j]!=arr[k]) { num++; } System.out.println(""+arr[i]+arr[j]+arr[k]); } } } } System.out.println("个数:"+num);
8 、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
[code]int end=10000; for(int i=1;i<=end;i++) { if(Math.pow((int)Math.sqrt(i+100), 2)==i+100&&Math.pow((int)Math.sqrt(i+268), 2)==i+268) { System.out.println(i); } }
9 、输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
[code]int year=46000; int month=2; int day=16; //判断闰年 boolean run=false; if(year%400==0) { run=true; }else if(year%4==0&&year%100!=0) { run=true; } for(int i=1;i<=month;i++) { switch(i) { case 2:day+=run?29:28;break; case 1: case 3: case 5: case 7: case 10: case 8: case 12:day+=31;break; case 4: case 6: case 9: case 11:day+=30;break; } } System.out.println(day);
10 、 给一个正整数,要求:一、求它是几位数,二、逆序打印出各位数字
[code] int u=34567; int i=0; while(u>0) { int yu=u%10; u=u/10; i++; System.out.print(yu); } System.out.println("\nu是"+i+"位数");
11 、 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
[code] int shu=123454321; length=String.valueOf(shu).length(); int[] arr_shu=new int[length]; int l=0; while(shu>0) { int yu=shu%10; shu=shu/10; l++; arr_shu[length-l]=yu; // System.out.print(yu); } boolean b=true; for(int e=0;e<length/2;e++) { if(arr_shu[e]!=arr_shu[length-1-e]) { b=false; } } if(b) { System.out.println("是回文数"); }else { System.out.println("不是回文数"); }
- javaSE第一部分_循环练习_百钱百鸡问题
- JavaSE教程-04Java中循环语句for,while,do···while-练习2
- JavaSE教程-04Java中循环语句for,while,do···while-练习
- javase--循环练习
- for,while,do....while循环语句练习实例
- 循环练习
- day-03JavaSE_循环
- Web 基础学习之 JS ,循环练习
- 循环队列理解及练习
- 0728 Java循环语句练习-简单的ATM取款
- 第六章 C控制语句:循环练习
- 7.C#的循环语句练习
- 反汇编个人练习:不用循环语句实现循环操作
- 【学习ios之路:C语言】If循环的应用的练习
- 循环练习4
- 循环操作练习,用户输入3次0-20之间的数字,累加求和
- JavaSE_网络编程_TCP_练习1
- 【JS每日练习】实现字体循环流动
- 【LVL1_5_c】【课后练习】【1】 循环为数组赋值,然后使用指针输出。
- 练习1:将一个6*6数组的第一行,第六行,主对角线和副对角线上的元素都存1,其他元素都存成-1,不需使用初始化,尽量少使用循环