1、java初学者48个小例子【程序 1】题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月 又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?/这是一个菲波拉契数列问题public class lianxi01 public static void main(String args) System.out.println( 第 1 个月的兔子对数 : 1);System.out.println( 第 2 个月的兔子对数 : 1);int f1 = 1, f2 = 1, f, M=24;for(int i=3; i=M; i+) f = f2;f
2、2 = f1 + f2;f1 = f;System.out.println( 第 + i + 个月的兔子对数 : +f2);【程序 3】题目:打印出所有的 水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和 等于该数本身。例如: 153 是一个 水仙花数 ,因为 153=1 的三次方 5 的三次方 3 的 三次方。public class lianxi03 public static void main(String args) int b1, b2, b3;for(int m=101; m =90 分的同学用 A 表示, 60-89分之 间的用 B 表示, 60分以下的用 C 表示
3、。import java.util.*;public class lianxi05 public static void main(String args) int x;char grade;Scanner s = new Scanner(System.in);System.out.print( 请输入一个成绩 : );x = s.n ext In t();grade = x = 90 ? A:x = 60 ? B:C;System.out.println(” 等级为:+grade);【程序6】题目:输入两个正整数 m和n,求其最大公约数和最小公倍数。/*在循环中,只要除数不等于0,用较大数除
4、以较小的数, 将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为 0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。 * /import java.util.*;public class lia nxi06 public static void main(String args) int a ,b,m;Scanner s = new Sca nn er(System.i n);System.out.print(键入一个整数: ”);a = s.n ext In t();System.out.print(再键入一个整数: ”)
5、;b = s.n ext In t();deff cd = new deff();m = cd.deff(a,b);int n = a * b / m;System.out.println(” 最大公约数:+ m);System.out.println(” 最小公倍数:+ n);class deffpublic int deff( int x, int y) int t;if(x y) t = x;x = y;y = t;while(y != 0) if(x = y) retur n x;else int k = x % y;x = y;y = k;return x;【程序7】题目:输入一行字
6、符,分别统计出其中英文字母、空格、数字和其它字符的个数。import java.util.*;public class lia nxi07 public static void main( Stri ng args) int digital = 0;int character = 0;int other = 0;int bla nk = 0;char ch = n ull;Scanner sc = new Sca nn er(System.i n);String s = sc.n extL in e();ch = s.toCharArray();for(i nt i=0; i= O & ch
7、= a & ch A & ch = Z) character +; else if(ch = ) bla nk +; else other +;System.out.println(数字个数:+ digital);System.out.println(英文字母个数:+ character);System.out.println(空格个数:+ blank);System.out.println(” 其他字符个数:+ other );【程序8】题目:求 s=a+aa+aaa+aaaa+aa.a的值,其中 a是一个数字。例如 2+22+222+2222+22222(此 时共有5个数相加),几个数相加
8、有键盘控制。import java.util.*;public class lia nxi08 public static void main(String args) long a , b = 0, sum = 0;Scanner s = new Sca nn er(System.i n);System.out.print(输入数字 a 的值:”);a = s.n ext In t();System.out.print(输入相加的项数:”);int n = s.n ext In t();int i = 0;while(i n) b = b + a;sum = sum + b;a = a *
9、10;+ i;System.out.pri ntln( sum);【程序9】题目:一个数如果恰好等于它的因子之和,这个数就称为 完数”。例如程 找出1000以内的所有完数。public class lia nxi09 public static void main( Stri ng args) System.out.println(1 到 1000 的完数有: ”);for(int i=1; i1000; i+) int t = 0;for(int j=1; j= i/2; j+) if(i % j = 0) t = t + j;if(t = i) System.out.pri nt(i +
10、);【程序10】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半; 再落下,10次落地时,共经过多少米?第 10次反弹多高?public class lia nxi10 public static void main(String args) double h = 100,s = 100;for(i nt i=1; i10; i+) s = s + h;h = h / 2;System.out.println(经过路程:+ s);6=1 + 2 + 3.编求它在 第System.out.println(反弹高度:+ h / 2);【程序11】题目:有1、2、3、4四个数字,能组成
11、多少个互不相同且无重复数字的三位数?都是多少?public class lia nxill public static void main(String args) int count = 0;for(i nt x=1; x5; x+) for(i nt y=1; y5; y+) for(i nt z=1; z 0 & x 10 & x 20 & x 40 & x 60 & x 100) y = 20 * 0.175 + 40 * 0.08 + 40 * 0.015 + (x - 100) * 0.01;System.out.println(” 应该提取的奖金是 ” + y + 万”);【程序
12、13】题目:一个整数,它加上100后是一个完全平方数, 再加上168又是一个完全平方数,请问该数是多少?public class lia nxi13 public static void main( Stri ng args) for(int x =1; x100000; x+) if(Math.sqrt(x+100) % 1 = 0) if(Math.sqrt(x+268) % 1 = 0) System.out.println(x + 加100是一个完全平方数,再加 168又是一个完全平方数 );/*按题意循环应该从-100开始(整数包括正整数、负整数、零) ,这样会多一个满足条件的数-9
13、9。但是我看到大部分人解这道题目时都把题中的 整数”理解成正整数,我也就随大流了。 */【程序14】题目:输入某年某月某日,判断这一天是这一年的第几天?import java.util.*;public class lia nxi14 public static void main(String args) int year, mon th, day;int days = 0;int d = 0;int e;in put fymd = new in put();do e = 0;System.out.print(输入年:);year =fymd.i nput();System.out.prin
14、t(输入月:);month = fymd.i nput();System.out.print(输入天:);day = fymd.i nput();if (year 0 | month 12 | day 31) System.out.println(”输入错误,请重新输入! ”);e=1 ;while( e=1);for (in t i=1; i y) int t = x;x = y;y = t;if(x z) int t = x;x = z;z = t;if(y z) int t = y;y = z;z = t;System.out.println(三个数字由小到大排列为: +x + + y
15、+ + z);class in putpublic int in put() int value = 0;Scanner s = new Sca nn er(System.i n);value = s.n ext In t();retur n value;【程序16】题目:输出9*9 口诀。public class lia nxi16 public static void main( Stri ng args) for(int i=1; i10; i+) for(i nt j=1; j=i; j+) System.out.pri nt(j + * + i + = + j*i + );if(j*
16、i10)System.out.pri nt( );System.out.pri ntl n();【程序17】题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。public class lia nxi17 public static void main(String args) int x = 1;for(int i=2; i=10; i+) x = (x+1)*2;System.out.println(” 猴
17、子第一天摘了 ” + x + 个桃子);【程序18】题目:两个乒乓球队进行比赛,各出三人。甲队为 a,b,c三人,乙队为x,y,z三人。已抽签决 定比赛名单。有人向队员打听比赛的名单。 a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。public class lia nxi18 static char m = a, b, c ;static char n = x, y, z ;public static void main(String args) for (int i = 0; i m.len gth; i+) for (int j = 0; j nen gth; j+) i
18、f (mi = a & nj = x) con ti nue; else if (mi = a & nj = y) con ti nue; else if (mi = c & nj = x)| (mi = c & nj = z) con ti nue; else if (mi = b & nj = z)| (mi = b & nj = y) con ti nue; elseSystem.out.pri ntl n(mi + vs + nj);【程序19】题目:打印出如下图案(菱形)*public class lia nxi19 public static void main(String ar
19、gs) int H = 7, W = 7;/高和宽必须是相等的奇数for(int i=0; i(H+1) / 2; i+) for(i nt j=0; jW/2-i; j+) System.out.pri nt(” );for(int k=1; k(i+1)*2; k+) System.out.pri nt(*);System.out.pri ntl n();for(int i=1; i=H/2; i+) for(i nt j=1; j=i; j+) System.out.pri nt(” );for(i nt k=1; k=W-2*i; k+) System.out.pri nt(*);Sy
20、stem.out.pri ntl n();【程序20】20项之和。题目:有一分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13.求出这个数列的前public class lia nxi20 public static void main(String args) int x = 2, y = 1, t;double sum = 0;for(int i=1; i=20; i+) sum = sum + (double)x / y;t = y;y = x;x = y + t;System.out.println(” 前 20 项相加之和是: ” + sum);【程序21】题目
21、:求 1+2!+3!+.+20!的和public class lia nxi21 public static void main(String args) long sum = 0;long fac = 1;for(int i=1; i=20; i+) fac = fac * i;sum += fac;System.out.pri ntln( sum);【程序22】题目:利用递归方法求 5!。public class lia nxi22 public static void main(String args) int n = 5;rec fr = new rec();System.out.pr
22、i ntl n(n+! = +fr.rec( n);class recpublic long rec(i nt n) long value = 0 ;if(n =1 ) value = 1; else value = n * rec(n-1);retur n value;【程序23】题目:有5个人坐在一起,问第五个人多少岁?他说比第 4个人大2岁。问第4个人岁数, 他说比第3个人大2岁。问第三个人,又说比第 2人大两岁。问第2个人,说比第一个人大 两岁。最后问第一个人,他说是 10岁。请问第五个人多大?public class lia nxi23 public static void main(String args) int age = 10;f
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1