智能网站建设设计,召开网站建设培训会,成都网络优化网站,织梦的手机端网站【程序1】 题目#xff1a;古典问题#xff1a;有一对兔子#xff0c;从出生后第3个月起每个月都生一对兔子#xff0c;小兔子长到第三个月后每个月又生一对兔子#xff0c;假如兔子都不死#xff0c;问每个月的兔子总数为多少#xff1f; //这是一个菲波拉契数列问题 p… 【程序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, M24; for(int i3; iM; i) { f f2; f2 f1 f2; f1 f; System.out.println(“第” i ”个月的兔子对数: “f2); } } } 【程序2】 题目判断101-200之间有多少个素数并输出所有素数。 程序分析判断素数的方法用一个数分别去除2到sqrt(这个数)如果能被整除 则表明此数不是素数反之是素数。 public class lianxi02 { public static void main(String[] args) { int count 0; for(int i101; i200; i2) { boolean b false; for(int j2; jMath.sqrt(i); j) { if(i % j 0) { b false; break; } else { b true; } } if(b true) {count ;System.out.println(i );} } System.out.println( “素数个数是: ” count); } } 【程序3】 题目打印出所有的 “水仙花数 “所谓 “水仙花数 “是指一个三位数其各位数字立方和等于该数本身。例如153是一个 “水仙花数 “因为1531的三次方5的三次方3的三次方。 public class lianxi03 { public static void main(String[] args) { int b1, b2, b3; for(int m101; m1000; m) { b3 m / 100; b2 m % 100 / 10; b1 m % 10; if((b3*b3*b3 b2*b2*b2 b1*b1*b1) m) { System.out.println(m”是一个水仙花数”); } } } } 【程序4】 题目将一个正整数分解质因数。例如输入90,打印出902*3*3*5。 程序分析对n进行分解质因数应先找到一个最小的质数k然后按下述步骤完成 (1)如果这个质数恰等于n则说明分解质因数的过程已经结束打印出即可。 (2)如果n k但n能被k整除则应打印出k的值并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除则用k1作为k的值,重复执行第一步。 import Java.util.*; public class lianxi04{ public static void main(String[] args) { Scanner s new Scanner(System.in); System.out.print( “请键入一个正整数: “); int n s.nextInt(); int k2; System.out.print(n “” ); while(k n) { if(k n) {System.out.println(n);break;} else if( n % k 0) {System.out.print(k “*”);n n / k; } else k; } } } 【程序5】 题目利用条件运算符的嵌套来完成此题学习成绩 90分的同学用A表示60-89分之间的用B表示60分以下的用C表示。 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.nextInt(); grade x 90 ? ‘A’ : x 60 ? ‘B’ :’C’; System.out.println(“等级为”grade); } } 【程序6】 题目输入两个正整数m和n求其最大公约数和最小公倍数。 /**在循环中只要除数不等于0用较大数除以较小的数将小的一个数作为下一轮循环的大数取得的余数作为下一轮循环的较小的数如此循环直到较小的数的值为0返回较大的数此数即为最大公约数最小公倍数为两数之积除以最大公约数。* / import java.util.*; public class lianxi06 { public static void main(String[] args) { int a ,b,m; Scanner s new Scanner(System.in); System.out.print( “键入一个整数 “); a s.nextInt(); System.out.print( “再键入一个整数 “); b s.nextInt(); deff cd new deff(); m cd.deff(a,b); int n a * b / m; System.out.println(“最大公约数: ” m); System.out.println(“最小公倍数: ” n); } } class deff{ public int deff(int x, int y) { int t; if(x y) { t x; x y; y t; } while(y ! 0) { if(x y) return x; else { int k x % y; x y; y k; } } return x; } } 【程序7】 题目输入一行字符分别统计出其中英文字母、空格、数字和其它字符的个数。 import java.util.*; public class lianxi07 { public static void main(String[] args) { int digital 0; int character 0; int other 0; int blank 0; char[] ch null; Scanner sc new Scanner(System.in); String s sc.nextLine(); ch s.toCharArray(); for(int i0; ich.length; i) { if(ch ‘0’ ch ‘9’) { digital ; } else if((ch ‘a’ ch ‘z’) || ch ‘A’ ch ‘Z’) { character ; } else if(ch ‘ ‘) { blank ; } else { other ; } } System.out.println(“数字个数: ” digital); System.out.println(“英文字母个数: ” character); System.out.println(“空格个数: ” blank); System.out.println(“其他字符个数:” other ); } } 【程序8】 题目求saaaaaaaaaaaa…a的值其中a是一个数字。例如222222222222222(此时共有5个数相加)几个数相加有键盘控制。 import java.util.*; public class lianxi08 { public static void main(String[] args) { long a , b 0, sum 0; Scanner s new Scanner(System.in); System.out.print(“输入数字a的值 “); a s.nextInt(); System.out.print(“输入相加的项数”); int n s.nextInt(); int i 0; while(i n) { b b a; sum sum b; a a * 10; i; } System.out.println(sum); } } 【程序9】 题目一个数如果恰好等于它的因子之和这个数就称为 “完数 “。例如6123.编程 找出1000以内的所有完数。 public class lianxi09 { public static void main(String[] args) { System.out.println(“1到1000的完数有 “); for(int i1; i1000; i) { int t 0; for(int j1; j i/2; j) { if(i % j 0) { t t j; } } if(t i) { System.out.print(i ” “); } } } 【程序10】 题目一球从100米高度自由落下每次落地后反跳回原高度的一半再落下求它在 第10次落地时共经过多少米第10次反弹多高 public class lianxi10 { public static void main(String[] args) { double h 100,s 100; for(int i1; i10; i) { s s h; h h / 2; } System.out.println(“经过路程” s); System.out.println(“反弹高度” h / 2); } 【程序11】 题目有1、2、3、4四个数字能组成多少个互不相同且无重复数字的三位数都是多少 public class lianxi11 { public static void main(String[] args) { int count 0; for(int x1; x5; x) { for(int y1; y5; y) { for(int z1; z5; z) { if(x ! y y ! z x ! z) { count ; System.out.println(x*100 y*10 z ); } } } } System.out.println(“共有” count “个三位数”); } } 【程序12】 题目企业发放的奖金根据利润提成。利润(I)低于或等于10万元时奖金可提10%利润高于10万元低于20万元时低于10万元的部分按10%提成高于10万元的部分可可提成7.5%20万到40万之间时高于20万元的部分可提成5%40万到60万之间时高于40万元的部分可提成3%60万到100万之间时高于60万元的部分可提成1.5%高于100万元时超过100万元的部分按1%提成从键盘输入当月利润求应发放奖金总数 import java.util.*; public class lianxi12 { public static void main(String[] args) { double x 0,y 0; System.out.print(“输入当月利润万”); Scanner s new Scanner(System.in); x s.nextInt(); if(x 0 x 10) { y x * 0.1; } else if(x 10 x 20) { y 10 * 0.1 (x – 10) * 0.075; } else if(x 20 x 40) { y 10 * 0.1 10 * 0.075 (x – 20) * 0.05; } else if(x 40 x 60) { y 10 * 0.1 10 * 0.075 20 * 0.05 (x – 40) * 0.03; } else if(x 60 x 100) { y 20 * 0.175 20 * 0.05 20 * 0.03 (x – 60) * 0.015; } else if(x 100) { y 20 * 0.175 40 * 0.08 40 * 0.015 (x – 100) * 0.01; } System.out.println(“应该提取的奖金是 ” y “万”); } } 【程序13】 题目一个整数它加上100后是一个完全平方数再加上168又是一个完全平方数请问该数是多少 public class lianxi13 { public static void main(String[] args) { for(int x 1; x100000; x) { if(Math.sqrt(x100) % 1 0) { if(Math.sqrt(x268) % 1 0) { System.out.println(x “加100是一个完全平方数再加168又是一个完全平方数”); } } } } } /*按题意循环应该从-100开始整数包括正整数、负整数、零这样会多一个满足条件的数-99。 但是我看到大部分人解这道题目时都把题中的“整数”理解成正整数我也就随大流了。*/ 【程序14】 题目输入某年某月某日判断这一天是这一年的第几天 import java.util.*; public class lianxi14 { public static void main(String[] args) { int year, month, day; int days 0; int d 0; int e; input fymd new input(); do { e 0; System.out.print(“输入年”); year fymd.input(); System.out.print(“输入月”); month fymd.input(); System.out.print(“输入天”); day fymd.input(); if (year 0 || month 0 || month 12 || day 0 || day 31) { System.out.println(“输入错误请重新输入”); e1 ; } }while( e1); for (int i1; i month; i) { switch (i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days 31; break; case 4: case 6: case 9: case 11: days 30; break; case 2: if ((year % 400 0) || (year % 4 0 year % 100 ! 0)) { days 29; } else { days 28; } break; } d days; } System.out.println(year “-” month “-” day “是这年的第” (dday) “天。”); } } class input{ public int input() { int value 0; Scanner s new Scanner(System.in); value s.nextInt(); return value; } } 【程序15】 题目输入三个整数x,y,z请把这三个数由小到大输出。 import java.util.*; public class lianxi15 { public static void main(String[] args) { input fnc new input(); int x0, y0, z0; System.out.print(“输入第一个数字”); x fnc.input(); System.out.print(“输入第二个数字”); y fnc.input(); System.out.print(“输入第三个数字”); z fnc.input(); if(x 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 ” ” z); } } class input{ public int input() { int value 0; Scanner s new Scanner(System.in); value s.nextInt(); return value; } } 【程序16】 题目输出9*9口诀。 public class lianxi16 { public static void main(String[] args) { for(int i1; i10; i) { for(int j1; ji; j) { System.out.print(j “*” i “” j*i ” ” ); if(j*i10){System.out.print(” “);} } System.out.println(); } } } 【程序17】 题目猴子吃桃问题猴子第一天摘下若干个桃子当即吃了一半还不瘾又多吃了一个 第二天早上又将剩下的桃子吃掉一半又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时见只剩下一个桃子了。求第一天共摘了多少。 public class lianxi17 { public static void main(String[] args) { int x 1; for(int i2; i10; i) { x (x1)*2; } System.out.println(“猴子第一天摘了 ” x ” 个桃子”); } } 【程序18】 题目两个乒乓球队进行比赛各出三人。甲队为a,b,c三人乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比c说他不和x,z比请编程序找出三队赛手的名单。 public class lianxi18 { static char[] m { ‘a’, ‘b’, ‘c’ }; static char[] n { ‘x’, ‘y’, ‘z’ }; public static void main(String[] args) { for (int i 0; i m.length; i) { for (int j 0; j n.length; j) { if (m[i] ‘a’ n[j] ‘x’) { continue; } else if (m[i] ‘a’ n[j] ‘y’) { continue; } else if ((m[i] ‘c’ n[j] ‘x’) || (m[i] ‘c’ n[j] ‘z’)) { continue; } else if ((m[i] ‘b’ n[j] ‘z’) || (m[i] ‘b’ n[j] ‘y’)) { continue; } else System.out.println(m[i] ” vs ” n[j]); } } } } 【程序19】 题目打印出如下图案菱形 * *** ***** ******* ***** *** * public class lianxi19 { public static void main(String[] args) { int H 7, W 7;//高和宽必须是相等的奇数 for(int i0; i(H1) / 2; i) { for(int j0; jW/2-i; j) { System.out.print(” “); } for(int k1; k(i1)*2; k) { System.out.print(‘*’); } System.out.println(); } for(int i1; iH/2; i) { for(int j1; ji; j) { System.out.print(” “); } for(int k1; kW-2*i; k) { System.out.print(‘*’); } System.out.println(); } } } 【程序20】 题目有一分数序列2/13/25/38/513/821/13…求出这个数列的前20项之和。 public class lianxi20 { public static void main(String[] args) { int x 2, y 1, t; double sum 0; for(int i1; i20; i) { sum sum (double)x / y; t y; y x; x y t; } System.out.println(“前20项相加之和是 ” sum); 【程序21】 题目求12!3!…20!的和 public class lianxi21 { public static void main(String[] args) { long sum 0; long fac 1; for(int i1; i20; i) { fac fac * i; sum fac; } System.out.println(sum); } } 【程序22】 题目利用递归方法求5!。 public class lianxi22 { public static void main(String[] args) { int n 5; rec fr new rec(); System.out.println(n”! “fr.rec(n)); } } class rec{ public long rec(int n) { long value 0 ; if(n 1 ) { value 1; } else { value n * rec(n-1); } return value; } } 【程序23】 题目有5个人坐在一起问第五个人多少岁他说比第4个人大2岁。问第4个人岁数他说比第3个人大2岁。问第三个人又说比第2人大两岁。问第2个人说比第一个人大两岁。最后问第一个人他说是10岁。请问第五个人多大 public class lianxi23 { public static void main(String[] args) { int age 10; for(int i2; i5; i) { age age2; } System.out.println(age); } } 【程序24】 题目给一个不多于5位的正整数要求一、求它是几位数二、逆序打印出各位数字。 //使用了长整型最多输入18位 import java.util.*; public class lianxi24 { public static void main(String[] args) { Scanner s new Scanner(System.in); System.out.print(“请输入一个正整数”); long a s.nextLong(); String ss Long.toString(a); char[] ch ss.toCharArray(); int jch.length; System.out.println(a “是一个” j ”位数。”); System.out.print(“按逆序输出是”); for(int ij-1; i0; i–) { System.out.print(ch[i]); } } } 【程序25】 题目一个5位数判断它是不是回文数。即12321是回文数个位与万位相同十位与千位相同。 import java.util.*; public class lianxi25 { public static void main(String[] args) { Scanner s new Scanner(System.in); int a; do{ System.out.print(“请输入一个5位正整数”); a s.nextInt(); }while(a10000||a99999); String ss String.valueOf(a); char[] ch ss.toCharArray(); if(ch[0]ch[4]ch[1]ch[3]){ System.out.println(“这是一个回文数”);} else {System.out.println(“这不是一个回文数”);} } } //这个更好不限位数 import java.util.*; public class lianxi25a { public static void main(String[] args) { Scanner s new Scanner(System.in); boolean is true; System.out.print(“请输入一个正整数”); long a s.nextLong(); String ss Long.toString(a); char[] ch ss.toCharArray(); int jch.length; for(int i0; ij/2; i) { if(ch[i]!ch[j-i-1]){isfalse;} } if(istrue){System.out.println(“这是一个回文数”);} else {System.out.println(“这不是一个回文数”);} } } 【程序26】 题目请输入星期几的第一个字母来判断一下是星期几如果第一个字母一样则继续 判断第二个字母。 import java.util.*; public class lianxi26 { public static void main(String[] args) { getChar tw new getChar(); System.out.println(“请输入星期的第一个大写字母”); char ch tw.getChar(); switch(ch) { case ‘M’: System.out.println(“Monday”); break; case ‘W’: System.out.println(“Wednesday”); break; case ‘F’: System.out.println(“Friday”); break; case ‘T’: { System.out.println(“请输入星期的第二个字母”); char ch2 tw.getChar(); if(ch2 ‘U’) {System.out.println(“Tuesday”); } else if(ch2 ‘H’) {System.out.println(“Thursday”); } else {System.out.println(“无此写法”); } }; break; case ‘S’: { System.out.println(“请输入星期的第二个字母”); char ch2 tw.getChar(); if(ch2 ‘U’) {System.out.println(“Sunday”); } else if(ch2 ‘A’) {System.out.println(“Saturday”); } else {System.out.println(“无此写法”); } }; break; default:System.out.println(“无此写法”); } } } class getChar{ public char getChar() { Scanner s new Scanner(System.in); String str s.nextLine(); char ch str.charAt(0); if(ch‘A’ || ch’Z’) { System.out.println(“输入错误请重新输入”); chgetChar(); } return ch; } } 【程序27】 题目求100之内的素数 //使用除sqrt(n)的方法求出的素数不包括2和3 public class lianxi27 { public static void main(String[] args) { boolean b false; System.out.print(2 ” “); System.out.print(3 ” “); for(int i3; i100; i2) { for(int j2; jMath.sqrt(i); j) { if(i % j 0) {b false; break; } else{b true;} } if(b true) {System.out.print(i ” “);} } } } //该程序使用除1位素数得2位方法运行效率高通用性差。 public class lianxi27a { public static void main(String[] args) { int[] a new int[]{2, 3, 5, 7}; for(int j0; j4; j)System.out.print(a[j] ” “); boolean b false; for(int i11; i100; i2) { for(int j0; j4; j) { if(i % a[j] 0) {b false; break; } else{b true;} } if(b true) {System.out.print(i ” “);} } } } 【程序28】 题目对10个数进行排序 import java.util.*; public class lianxi28 { public static void main(String[] args) { Scanner s new Scanner(System.in); int[] a new int[10]; System.out.println(“请输入10个整数”); for(int i0; i10; i) { a[i] s.nextInt(); } for(int i0; i10; i) { for(int ji1; j10; j) { if(a[i] a[j]) { int t a[i]; a[i] a[j]; a[j] t; } } } for(int i0; i10; i) { System.out.print(a[i] ” “); } } } 【程序29】 题目求一个3*3矩阵对角线元素之和 import java.util.*; public class lianxi29 { public static void main(String[] args) { Scanner s new Scanner(System.in); int[][] a new int[3][3]; System.out.println(“请输入9个整数”); for(int i0; i3; i) { for(int j0; j3; j) { a[i][j] s.nextInt(); } } System.out.println(“输入的3 * 3 矩阵是:”); for(int i0; i3; i) { for(int j0; j3; j) { System.out.print(a[i][j] ” “); } System.out.println(); } int sum 0; for(int i0; i3; i) { for(int j0; j3; j) { if(i j) { sum a[i][j]; } } } System.out.println(“对角线之和是” sum); } } 【程序30】 题目有一个已经排好序的数组。现输入一个数要求按原来的规律将它插入数组中。 //此程序不好没有使用折半查找插入 import java.util.*; public class lianxi30 { public static void main(String[] args) { int[] a new int[]{1, 2, 6, 14, 25, 36, 37,55}; int[] b new int[a.length1]; int t1 0, t2 0; int i 0; Scanner s new Scanner(System.in); System.out.print(“请输入一个整数”); int num s.nextInt(); if(num a[a.length-1]) { b[b.length-1] num; for(i0; ia.length; i) { b[i] a[i]; } } else { for(i0; ia.length; i) { if(num a[i]) { b[i] a[i]; } else { b[i] num; break; } } for(int ji1; jb.length; j) { b[j] a[j-1]; } } for (i 0; i b.length; i) { System.out.print(b[i] ” “); } } } 【程序31】 题目将一个数组逆序输出。 import java.util.*; public class lianxi31 { public static void main(String[] args) { Scanner s new Scanner(System.in); int a[] new int[20]; System.out.println(“请输入多个正整数输入-1表示结束”); int i0,j; do{ a[i]s.nextInt(); i; }while (a[i-1]!-1); System.out.println(“你输入的数组为”); for( j0; ji-1; j) { System.out.print(a[j]” “); } System.out.println(“\n数组逆序输出为”); for( ji-2; j0; jj-1) { System.out.print(a[j]” “); } } } 【程序32】 题目取一个整数a从右端开始的47位。 import java.util.*; public class lianxi32 { public static void main(String[] args) { Scanner s new Scanner(System.in); System.out.print(“请输入一个7位以上的正整数”); long a s.nextLong(); String ss Long.toString(a); char[] ch ss.toCharArray(); int jch.length; if (j7){System.out.println(“输入错误”);} else { System.out.println(“截取从右端开始的47位是”ch[j-7]ch[j-6]ch[j-5]ch[j-4]); } } } 【程序33】 题目打印出杨辉三角形要求打印出10行如下图 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ………… public class lianxi33 { public static void main(String[] args) { int[][] a new int[10][10]; for(int i0; i10; i) { a[i][i] 1; a[i][0] 1; } for(int i2; i10; i) { for(int j1; ji; j) { a[i][j] a[i-1][j-1] a[i-1][j]; } } for(int i0; i10; i) { for(int k0; k2*(10-i)-1; k) { System.out.print(” “); } for(int j0; ji; j) { System.out.print(a[i][j] ” “); } System.out.println(); } } } 【程序34】 题目输入3个数a,b,c按大小顺序输出。 import java.util.Scanner; public class lianxi34 { public static void main(String[] args) { Scanner s new Scanner(System.in); System.out.println(“请输入3个整数”); int a s.nextInt(); int b s.nextInt(); int c s.nextInt(); if(a b) { int t a; a b; b t; } if(a c) { int t a; a c; c t; } if(b c) { int t b; b c; c t; } System.out.println(“从大到小的顺序输出:”); System.out.println(a ” ” b ” ” c); } } 【程序35】 题目输入数组最大的与第一个元素交换最小的与最后一个元素交换输出数组。 import java.util.*; public class lianxi35 { public static void main(String[] args) { int N 8; int[] a new int [N]; Scanner s new Scanner(System.in); int idx1 0, idx2 0; System.out.println(“请输入8个整数”); for(int i0; iN; i) { a[i] s.nextInt(); } System.out.println(“你输入的数组为”); for(int i0; iN; i) { System.out.print(a[i] ” “); } int max a[0], min a[0]; for(int i0; iN; i) { if(a[i] max) { max a[i]; idx1 i; } if(a[i] min) { min a[i]; idx2 i; } } if(idx1 ! 0) { int temp a[0]; a[0] a[idx1]; a[idx1] temp; } if(idx2 ! N-1) { int temp a[N-1]; a[N-1] a[idx2]; a[idx2] temp; } System.out.println(“\n交换后的数组为”); for(int i0; iN; i) { System.out.print(a[i] ” “); } } } 【程序36】 题目有n个整数使其前面各数顺序向后移m个位置最后m个数变成最前面的m个数 import java.util.Scanner; public class lianxi36 { public static void main(String[] args) { int N 10; int[] a new int[N]; Scanner s new Scanner(System.in); System.out.println(“请输入10个整数”); for(int i0; iN; i) { a[i] s.nextInt(); } System.out.print(“你输入的数组为”); for(int i0; iN; i) { System.out.print(a[i] ” “); } System.out.print(“\n请输入向后移动的位数”); int m s.nextInt(); int[] b new int[m]; for(int i0; im; i) { b[i] a[N-mi]; } for(int iN-1; im; i–) { a[i] a[i-m]; } for(int i0; im; i) { a[i] b[i]; } System.out.print(“位移后的数组是”); for(int i0; iN; i) { System.out.print(a[i] ” “); } } } 【程序37】 题目有n个人围成一圈顺序排号。从第一个人开始报数从1到3报数凡报到3的人退出圈子问最后留下的是原来第几号的那位。 import java.util.Scanner; public class lianxi37 { public static void main(String[] args) { Scanner s new Scanner(System.in); System.out.print(“请输入排成一圈的人数”); int n s.nextInt(); boolean[] arr new boolean[n]; for(int i0; iarr.length; i) { arr[i] true; } int leftCount n; int countNum 0; int index 0; while(leftCount 1) { if(arr[index] true) { countNum ; if(countNum 3) { countNum 0; arr[index] false; leftCount –; } } index ; if(index n) { index 0; } } for(int i0; in; i) { if(arr[i] true) { System.out.println(“原排在第”(i1)”位的人留下了。”); } } } } 【程序38】 题目写一个函数求一个字符串的长度在main函数中输入字符串并输出其长度。 /*……………… *……题目意思似乎不能用length()函数 */ import java.util.*; public class lianxi38 { public static void main(String[] args) { Scanner s new Scanner(System.in); System.out.println(“请输入一个字符串”); String str s.nextLine(); System.out.println(“字符串的长度是”str.length()); } } 【程序39】 题目编写一个函数输入n为偶数时调用函数求1/21/4…1/n,当输入n为奇数时调用函数1/11/3…1/n(利用指针函数) //没有利用指针函数 import java.util.*; public class lianxi39 { public static void main(String[] args) { Scanner s new Scanner(System.in); System.out.print(“请输入一个正整数 n “); int n s.nextInt(); System.out.println(“相应数列的和为” sum(n)); } public static double sum(int n) { double res 0; if(n % 2 0) { for(int i2; in; i2) { res (double)1 / i; } } else { for(int i1; in; i2) { res (double)1 / i ; } } return res; } } 【程序40】 题目字符串排序。 public class lianxi40 { public static void main(String[] args) { int N5; String temp null; String[] s new String[N]; s[0] “matter”; s[1] “state”; s[2] “solid”; s[3] “liquid”; s[4] “gas”; for(int i0; iN; i) { for(int ji1; jN; j) { if(compare(s[i], s[j]) false) { temp s[i]; s[i] s[j]; s[j] temp; } } } for(int i0; iN; i) { System.out.println(s[i]); } } static boolean compare(String s1, String s2) { boolean result true; for(int i0; is1.length() is2.length(); i) { if(s1.charAt(i) s2.charAt(i)) { result false; break; } else if(s1.charAt(i) s2.charAt(i)) { result true; break; } else { if(s1.length() s2.length()) { result true; } else { result false; } } } return result; } } 【程序41】 题目海滩上有一堆桃子五只猴子来分。第一只猴子把这堆桃子凭据分为五份多了一个这只猴子把多的一个扔入海中拿走了一份。第二只猴子把剩下的桃子又平均分成五份又多了一个它同样把多的一个扔入海中拿走了一份第三、第四、第五只猴子都是这样做的问海滩上原来最少有多少个桃子 public class lianxi41 { public static void main (String[] args) { int i,m,j0,k,count; for(i4;i10000;i4) { count0; mi; for(k0;k5;k) { ji/4*51; ij; if(j%40) count; else break; } im; if(count4) {System.out.println(“原有桃子 “j” 个”); break;} } } } 【程序42】 题目809*??800*??9*??1 其中??代表的两位数,8*??的结果为两位数9*??的结果为3位数。求??代表的两位数及809*??后的结果。 //题目错了809x800x9x1 这样的方程无解。去掉那个1就有解了。 public class lianxi42 { public static void main (String[] args) { int a809,b,i; for(i10;i13;i) {bi*a ; if(8*i1009*i100) System.out.println (“809*”i”””800*”i”””9*”i””b);} } } 【程序43】 题目求0—7所能组成的奇数个数。 //组成1位数是4个。 //组成2位数是7*4个。 //组成3位数是7*8*4个。 //组成4位数是7*8*8*4个。 //…… public class lianxi43 { public static void main (String[] args) { int sum4; int j; System.out.println(“组成1位数是 “sum” 个”); sumsum*7; System.out.println(“组成2位数是 “sum” 个”); for(j3;j9;j){ sumsum*8; System.out.println(“组成”j”位数是 “sum” 个”); } } } 【程序44】 题目一个偶数总能表示为两个素数之和。 //由于用除sqrt(n)的方法求出的素数不包括2和3 //因此在判断是否是素数程序中人为添加了一个3。 import java.util.*; public class lianxi44 { public static void main(String[] args) { Scanner s new Scanner(System.in); int n,i; do{ System.out.print(“请输入一个大于等于6的偶数”); n s.nextInt(); } while(n6||n%2!0); //判断输入是否是6偶数,不是,重新输入 fun fc new fun(); for(i2;in/2;i){ if((fc.fun(i))1(fc.fun(n-i)1)) {int jn-i; System.out.println(n” “i” “j); } //输出所有可能的素数对 } } } class fun{ public int fun (int a) //判断是否是素数的函数 { int i,flag0; if(a3){flag1;return(flag);} for(i2;iMath.sqrt(a);i){ if(a%i0) {flag0;break;} else flag1;} return (flag) ;//不是素数,返回0,是素数,返回1 } } //解法二 import java.util.*; public class lianxi44 { public static void main(String[] args) { Scanner s new Scanner(System.in); int n; do{ System.out.print(“请输入一个大于等于6的偶数”); n s.nextInt(); } while(n6||n%2!0); //判断输入是否是6偶数,不是,重新输入 for(int i3;in/2;i2){ if(fun(i)fun(n-i)) { System.out.println(n” “i” “(n-i)); } //输出所有可能的素数对 } } static boolean fun (int a){ //判断是否是素数的函数 boolean flagfalse; if(a3){flagtrue;return(flag);} for(int i2;iMath.sqrt(a);i){ if(a%i0) {flagfalse;break;} else flagtrue;} return (flag) ; } } 【程序45】 题目判断一个素数能被几个9整除 //题目错了吧能被9整除的就不是素数了所以改成整数了。 import java.util.*; public class lianxi45 { public static void main (String[] args) { Scanner s new Scanner(System.in); System.out.print(“请输入一个整数”); int num s.nextInt(); int tmp num; int count 0; for(int i 0 ; tmp%9 0 ;){ tmp tmp/9; count ; } System.out.println(num” 能够被 “count” 个9整除。”); } } 【程序46】 题目两个字符串连接程序 import java.util.*; public class lianxi46 { public static void main(String[] args) { Scanner s new Scanner(System.in); System.out.print(“请输入一个字符串”); String str1 s.nextLine(); System.out.print(“请再输入一个字符串”); String str2 s.nextLine(); String str str1str2; System.out.println(“连接后的字符串是”str); } } 【程序47】 题目读取7个数1—50的整数值每读取一个值程序打印出该值个数的。 import java.util.*; public class lianxi47 { public static void main(String[] args) { Scanner s new Scanner(System.in); int n1,num; while(n7){ do{ System.out.print(“请输入一个1–50之间的整数”); num s.nextInt(); }while(num1||num50); for(int i1;inum;i) {System.out.print(“*”); } System.out.println(); n ; } } } 【程序48】 题目某个公司采用公用电话传递数据数据是四位的整数在传递过程中是加密的加密规则如下每位数字都加上5,然后用和除以10的余数代替该数字再将第一位和第四位交换第二位和第三位交换。 import java.util.*; public class lianxi48 { public static void main(String args[]) { Scanner s new Scanner(System.in); int num0,temp; do{ System.out.print(“请输入一个4位正整数”); num s.nextInt(); }while (num1000||num9999); int a[]new int[4]; a[0] num/1000; //取千位的数字 a[1] (num/100)%10; //取百位的数字 a[2] (num/10)%10; //取十位的数字 a[3] num%10; //取个位的数字 for(int j0;j4;j) { a[j]5; a[j]%10; } for(int j0;j1;j) { temp a[j]; a[j] a[3-j]; a[3-j] temp; } System.out.print(“加密后的数字为”); for(int j0;j4;j) System.out.print(a[j]); } } 【程序49】 题目计算字符串中子串出现的次数 import java.util.*; public class lianxi49 { public static void main(String args[]){ Scanner s new Scanner(System.in); System.out.print(“请输入字符串”); String str1 s.nextLine(); System.out.print(“请输入子串”); String str2 s.nextLine(); int count0; if(str1.equals(“”)||str2.equals(“”)) { System.out.println(“你没有输入字符串或子串,无法比较!”); System.exit(0); } else { for(int i0;istr1.length()-str2.length();i) { if(str2.equals(str1.substring(i, str2.length()i))) //这种比法有问题会把”aaa”看成有2个”aa”子串。 count; } System.out.println(“子串在字符串中出现: “count” 次”); } } } 【程序50】 题目有五个学生每个学生有3门课的成绩从键盘输入以上数据包括学生号姓名三门课成绩计算出平均成绩把原有的数据和计算出的平均分数存放在磁盘文件 “stud “中。 import java.io.*; import java.util.*; public class lianxi50 { public static void main(String[] args){ Scanner ss new Scanner(System.in); String [][] a new String[5][6]; for(int i1; i6; i) { System.out.print(“请输入第”i”个学生的学号”); a[i-1][0] ss.nextLine(); System.out.print(“请输入第”i”个学生的姓名”); a[i-1][1] ss.nextLine(); for(int j1; j4; j) { System.out.print(“请输入该学生的第”j”个成绩”); a[i-1][j1] ss.nextLine(); } System.out.println(“\n”); } //以下计算平均分 float avg; int sum; for(int i0; i5; i) { sum0; for(int j2; j5; j) { sumsum Integer.parseInt(a[i][j]); } avg (float)sum/3; a[i][5]String.valueOf(avg); } //以下写磁盘文件 String s1; try { File f new File(“C:\\stud”); if(f.exists()){ System.out.println(“文件存在”); }else{ System.out.println(“文件不存在正在创建文件”); f.createNewFile();//不存在则创建 } BufferedWriter output new BufferedWriter(new FileWriter(f)); for(int i0; i5; i) { for(int j0; j6; j) { s1a[i][j]”\r\n”; output.write(s1); } } output.close(); System.out.println(“数据已写入c盘文件stud中”); } catch (Exception e) { e.printStackTrace(); } } }