JAVA经典算法50题
java 经典笔试算法题
java 经典笔试算法题一、排序算法1. 实现一个基于Java的快速排序算法。
答:快速排序是一种常用的排序算法,其核心思想是分治法。
首先选择一个基准元素,将数组分成两部分,一部分小于基准元素,一部分大于基准元素。
然后递归地对这两部分继续进行快速排序,直到整个数组有序。
2. 实现一个稳定的冒泡排序算法。
答:冒泡排序是一种简单的排序算法,通过重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
稳定的冒泡排序算法是指在排序过程中,相同元素的相对位置不会改变。
3. 实现一个选择排序算法。
答:选择排序是一种简单直观的排序算法。
其工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
二、字符串操作算法1. 实现一个函数,将一个字符串反转。
答:可以使用StringBuilder类的reverse()方法来实现字符串的反转。
2. 实现一个函数,将一个字符串中的所有大写字母转换为小写字母,其余字符保持不变。
答:可以使用String类的replaceAll()方法和toLowerCase()方法来实现。
3. 实现一个函数,将一个字符串按空格分割成单词数组,并删除空字符串和null字符串。
答:可以使用split()方法和Java 8的流来处理。
三、数据结构算法1. 实现一个单向链表,并实现插入、删除、查找和打印链表的功能。
答:单向链表是一种常见的数据结构,可以通过定义节点类和链表类来实现。
插入、删除、查找和打印链表的功能可以通过相应的方法来实现。
2. 实现一个二叉搜索树(BST),并实现插入、查找、删除节点的功能。
答:二叉搜索树是一种常见的数据结构,它具有唯一的高度特性。
插入、查找和删除节点的功能可以通过相应的方法来实现,如左旋、右旋、递归等。
3. 实现一个哈希表(HashMap),并实现插入、查找和删除键值对的功能。
答:HashMap是一种基于哈希表的映射数据结构,它通过哈希码的方式将键映射到对应的值上。
JAVA经典算法50题(3)【面试+工作】
JAVA经典算法50题(3)【面试+工作】JAVA经典算法50题(3)【面试+工作】【程序21】题目:求1+2!+3!+...+20!的和。
1.程序分析:此程序只是把累加变成了累乘。
public class Demo21 {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.println(sum);}}【程序22】题目:利用递归方法求5!。
1.程序分析:递归公式:f(n)=f(n-1)*4!import java.util.Scanner;public class Demo22 {public static long fac(int n) {long value = 0;if (n == 1 || n == 0) {value = 1;} else if (n > 1) {value = n * fac(n - 1);}return value;}public static void main(String[] args) {System.out.println("请输入一个数:");Scanner in = new Scanner(System.in);int n = in.nextInt();System.out.println(n + "的阶乘为:" + fac(n));}}【程序23】题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。
问第4个人岁数,他说比第3个人大2岁。
问第三个人,又说比第2人大两岁。
问第2个人,说比第一个人大两岁。
最后问第一个人,他说是10岁。
请问第五个人多大?1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。
经典的JAVA算法题及答案
经典的JAVA算法题及答案1.使用Java语言编写代码,将一个正整数分解质因数,例如:输入90,打印输出90=2*3*3*5。
答案:public class Math{public static void main(String[] args){int n,i;System.out.println("\nplease input a number:\n");Scanner input=new Scanner(System.in);n=input.nextInt();System.out.println(n);for(i=2;i<=n;i++){while(n!=i){if(n%i==0){System.out.println(i);n=n/i;}else{break;}}}System.out.println(n);}}2.题目如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
static int[] bits = new int[] { 1, 2, 3, 4, 5 };/*** @param args*/public static void main(String[] args) {sort("", bits);}private static void sort(String prefix, int[] a) {if (a.length == 1) {System.out.println(prefix + a[0]);}for (int i = 0; i < a.length; i++) {sort(prefix + a, copy(a, i));}}private static int[] copy(int[] a,int index){int[] b = new int[a.length-1];System.arraycopy(a, 0, b, 0, index);System.arraycopy(a, index+1, b, index, a.length-index-1);return b;}3.编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
java基础50道经典练习题及答案
java基础50道经典练习题及答案Java基础50道经典练习题及答案Java作为一门广泛应用于软件开发领域的编程语言,其基础知识的掌握对于程序员来说至关重要。
为了帮助大家更好地理解和掌握Java的基础知识,下面将介绍50道经典的Java练习题及其答案。
1. 编写一个Java程序,打印输出"Hello, World!"。
```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```2. 编写一个Java程序,计算并打印输出1到100之间所有偶数的和。
```javapublic class SumOfEvenNumbers {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}System.out.println("Sum of even numbers: " + sum);}}```3. 编写一个Java程序,判断一个整数是否为素数。
```javapublic class PrimeNumber {public static void main(String[] args) {int number = 17;boolean isPrime = true;for (int i = 2; i <= Math.sqrt(number); i++) {if (number % i == 0) {isPrime = false;break;}}if (isPrime) {System.out.println(number + " is a prime number.");} else {System.out.println(number + " is not a prime number."); }}```4. 编写一个Java程序,将一个字符串反转并输出。
50道经典java题目
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
【程序38】
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
【程序39】
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
【程序20】
题目:有
一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。
【程序21】
【程序19】
题目:打印出如下图案(菱形)
*
***
******
********
******
***
*
1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。
1.程序分析:(a> b)?a:b这是条件运算符的基本例子。
【程序6】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
【程ห้องสมุดไป่ตู้7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
java经典算法50题答案
1package work;public class Fib {public static void main(String[] args){int[] fib = new int[23];fib[0] = 1;fib[1] = 1;for(int i = 2; i < fib.length; i++){fib[i] = fib[i - 1] + fib[i - 2];}for(int i = 0; i < fib.length; i++){System.out.print(fib[i]+" ");}}}2package work;import java.math.*;import java.util.ArrayList;public class Sushu {public static void main(String[] args){ArrayList list = new ArrayList();for(int i = 101; i < 200; i++){if(isPrime(i)){list.add(i);}}System.out.println(list + "共有" +list.size());}public static boolean isPrime(int i){boolean flag = true;for(int j = 2; j < Math.sqrt(i); j++){if(i % j == 0){flag = false;}}return flag;}}3package work;public class Flower {public static void main(String[] args){for(int i = 100; i <999; i++){if(flower(i)){System.out.print(i +" ");}}}public static boolean flower(int number){boolean flag = false;int i = number / 100; //int j = (number - i*100) / 10;int k = number % 10;if((i*i*i + j*j*j + k*k*k) == number){flag = true;}return flag;}}4package work;import java.util.Scanner;import java.io.*;public class Decomposition {private static int k = 2;public static void main(String[] args)throws IOException{ Scanner scanner = new Scanner(System.in);System.out.println("请输入一个整数");int number = scanner.nextInt();System.out.print(number + "=");fenJie(number);}public static void fenJie(int number){if(k == number){System.out.print(k);return;}else if(number % k == 0){System.out.print(k + "*");fenJie(number / k);}else{k++;fenJie(number);}}}5package work;import java.util.Scanner;import java.io.*;public class TiaoJian{public static void main(String[] args) throws IOException{ Scanner scanner = new Scanner(System.in);System.out.println("请输入成绩");int score = scanner.nextInt();char s = ((score >= 90) ? 'A' : ((score < 60) ? 'C' : 'B'));System.out.println(s);}}6package work;import java.util.Scanner;public class Beiyue{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入m n");int m = scanner.nextInt();int n = scanner.nextInt();int a = yueshu(m,n);System.out.println("最大公约数为;" + a);System.out.println("最小公倍数为:" +m * n / a);}public static int yueshu(int m, int n){if(n == 0){return m;}else if(n != 0){return yueshu(n,m%n);}return 0;}}7package work;import java.util.Scanner;public class Fenlei{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入一串字符:");String s = scanner.nextLine();char[] ch = s.toCharArray();int number = 0;int space = 0;int letter = 0;int other = 0;for(int i = 0; i < ch.length; i++){if(((ch[i] > 'a') && (ch[i] < 'z')) || ((ch[i] > 'A') && (ch[i] < 'Z'))){ //Character.isLetter(ch[i])letter++;}else if((ch[i] > '0') &&(ch[i] < '9')){ //Character.isDigit(ch[i])number++;}else if(ch[i] == ' '){ //Character.isSpaceChar(ch[i]) space++;}else{other++;}}System.out.println("letter = " + letter);System.out.println("number = " + number);System.out.println("space = " + space);System.out.println("other = " + other);}}8package work;import java.util.Scanner;public class Sum{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入数字a");int a = scanner.nextInt();System.out.println("请输入加数个数");int n = scanner.nextInt();sum(a, n);}public static void sum(int a, int n){int sum = 0;int t = 0; //每一项的值System.out.println("sum = ");for(int i = 0; i < n; i++){t = 0; //初始化为0for(int j = 0; j <= i; j++){ //计算每一项的值t = t + (int)(Math.pow(10, j)) * a;}if(i < n - 1){System.out.print(t + "+");}sum = sum + t;}System.out.print(t);System.out.print("=" + sum);}}9package work;import java.io.*;public class Wanshu{private static int k = 2;private static int sum = 1;public static void main(String[] args){for(int number = 4; number < 1000; number++){ k = 2;sum =1;wanshu(number);}}public static int fenJie(int number){if(k == number){//System.out.print(k);sum = sum + k;}else if(number % k == 0){//System.out.print(k + " * ");sum = sum + k;fenJie(number / k);}else if(number % k != 0){k++;fenJie(number);}return sum;}public static void wanshu(int number){//System.out.print(number + "= 1 * ");int s = fenJie(number);//System.out.println();//System.out.println("因子之和为:" + s);if(s == number){System.out.print(number + " ");}}}10package work;public class Fantan{public static void main(String[] args){double length = 100;double height = 100;for(int i = 0; i < 10; i++){length = length + height;height = height / 2.0;}System.out.println(length);System.out.println(height);}}11package work;public class Pailie{public static void main(String[] args){int sum = 0;int num = 0;for(int i = 1; i <= 4; i++){for(int j = 1; j <= 4; j++){for(int k = 1; k <= 4; k++){if((k != j) && (k !=i) && (i != j)){num = 100 * i + 10 * j + k;System.out.print(num + " ");sum++;}}}}System.out.println("sum = " + sum);}}12package work;import java.util.Scanner;public class Pay{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入工资:");int salary = scanner.nextInt();int n = salary / 10;double sum;switch(n){case 0 :sum = salary * 0.1; break;case 1 :sum = 1 + (salary - 10) * 0.075; break;case 2 :case 3 :sum = 1.75 + (salary - 20) * 0.05; break;case 4 :case 5 :sum = 2.75 + (salary - 40) * 0.03; break;case 6 :case 7 :case 8 :case 9 :sum = 3.35 + (salary - 60) * 0.015; break;default :sum = 3.95 + (salary - 100) * 0.1; break;}System.out.println("奖金为:" + sum);}}13package work;public class Pow{public static void main(String[] args){int number = 0;for(int i = 0; i < 320; i++){for(int j = 0; j < 320; j++){if((i * i -100) == (j * j -268)){number = i * i -100;if(number > 0){System.out.println(number + " ");}}}}}}14package work;import java.util.Scanner;public class Day{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入年");int year = scanner.nextInt();System.out.println("请输入月");int month = scanner.nextInt();System.out.println("请输入日");int day = scanner.nextInt();boolean flag = false;if((((year % 4) == 0) && ((year % 100) != 0)) || ((year % 400) == 0)){ flag = true;}int sum = 0;switch(month){case 1 :sum = day; break;case 2 :sum = 28 + day; break;case 3 :sum = 59 + day; break;case 4 :sum = 90 + day; break;case 5 :sum = 120 + day; break;case 6 :sum = 151 + day; break;case 7 :sum = 181 + day; break;case 8 :sum = 212 + day; break;case 9 :sum = 243 + day; break;case 10 :sum = 273 + day; break;case 11 :sum = 304 + day; break;case 12 :sum = 335 + day; break;default :System.out.println("输入有误");}if(flag && (month > 1)){sum++;}System.out.println("这是一年中的第" + sum + "天");}}15package work;import java.util.Scanner;public class Min{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入三个整数");int x = scanner.nextInt();int y = scanner.nextInt();int z = scanner.nextInt();if(x < y && x < z){System.out.print(x + " ");if(y < z){System.out.print(y + " " + z);}else if(y > z){System.out.print(z + " " + y);}}else if(y < x && y < z){System.out.print(y + " ");if(x < z){System.out.print(x + " " + z);}else if(x > z){System.out.print(z + " " + x);}}else if(z < y && z < x){System.out.print(z + " ");if(y < x){System.out.print(y + " " + x);}else if(y > x){System.out.print(x + " " + y);}}}}16package work;public class Nine{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 + " = " + (j * i) + " ");}System.out.println();}}}17package work;public class Eat{public static void main(String[] args){System.out.println(eat(10,1));}public static int eat(int day, int sum){if(day == 1){return sum;}else if(day != 1){return eat(day - 1,(sum + 1) * 2);}return sum;}}18package work;public class Contest{public static void main(String[] args){char i, j, k;//a b c 的对手for(i = 'x'; i <= 'z'; i++){for(j = 'x'; j <= 'z'; j++){for(k = 'x'; k <= 'z'; k++){if(i != j && i != k && j != k){if(i != 'x' && k != 'x' && k!= 'z'){System.out.println(i + " " + j + " " + k);}}}}}}}19package work;public class Print{public static void main(String[] args){ for(int i = 0; i <= 4; i++){for(int j = 0; j < 4 - i; j++){System.out.print(" ");}for(int j = 0; j < 2 * i - 1; j++){System.out.print("*");}System.out.println();}for(int i = 3; i > 0; i--){for(int j = 0; j <= 3 - i; j++){System.out.print(" ");}for(int j = 0; j < 2 * i - 1; j++){System.out.print("*");}System.out.println();}}}20package work;public class Sum{public static void main(String[] args){ double[] a = new double[22];a[0] = 1.0;a[1] = 2.0;double sum = 0;for(int i = 2; i < 21; i++){a[i] = a[i - 1] + a[i - 2];}for(int i = 1; i < 21; i++){sum = sum + a[i] / a[i - 1];}System.out.println("sum = " + sum);}}21package work;public class Jiech{public static void main(String[] args){int sum = 0;for(int i = 1; i < 21; i++){sum = sum + jiech(i);}System.out.println("阶乘之和为:" + sum);}public static int jiech(int n){if(n == 1){return 1;}else if(n != 1){return jiech(n - 1) * n;}return 0;}}22package work;public class Jiecheng{public static void main(String[] args){System.out.println(jiech(5));}public static int jiech(int n){if(n == 1){return 1;}else if(n != 1){return jiech(n - 1) * n;}return 0;}}23package work;public class Age{public static void main(String[] args){System.out.println(age(5));}public static int age(int n){if(n == 1){return 10;}else if(n != 1){return age(n - 1) + 2;}return 0;}}24package work;import java.util.Scanner;public class Number{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入一个不多于五位的正整数:");String num = scanner.next();int len = num.length();System.out.println("这是一个" + len + "位数");for(int i = len; i > 0; i--){System.out.println("第" + i + "位数是" + num.charAt(i - 1));}}}25package work;import java.util.Scanner;public class Huiwen{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入一个五位数:");String number = scanner.next();if(number.charAt(0) == number.charAt(4) && number.charAt(1) == number.charAt(3)){System.out.println(number + "是回文数");}else{System.out.println(number + "不是回文数");}}}26package work;import java.util.Scanner;public class Week{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入第1个字母:");String str = scanner.next();switch(str.charAt(0)){case 'm' :System.out.println("Monday"); break;case 't' :System.out.println("请输入第2个字母:");str = scanner.next();if(str.charAt(0) == 'u'){System.out.println("Tuesday");}else{System.out.println("Thursday");}break;case 'w' :System.out.println("Wednesday");break;case 'f' :System.out.println("Friday"); break;case 's' :System.out.println("请输入第2个字母:");str = scanner.next();if(str.charAt(0) == 'a'){System.out.println("Satday");}else{System.out.println("Sunday");}break;default :System.out.println("输入有误");}}}27package work;public class Prime{public static void main(String[] args){for(int i = 2; i < 100; i++){if(prime(i)){System.out.print(i + " ");}}}public static boolean prime(int number){boolean flag = true;for(int i = 2; i <= Math.sqrt(number); i++){if(number % i == 0){flag = false;}}return flag;}}28package work;public class Sort{public static void main(String[] args){int[] a = {2,4,3,6,7,8,1,89,56,23};sort(a);for(int array : a){System.out.print(array + " ");}}public static void sort(int[] a){int index;for(int i = 0; i < 9; i++){index = i;for(int j = i + 1; j < 10; j++){if(a[j] < a[index]){index = j;}}int t;if(index != i){t = a[i];a[i] = a[index];a[index] = t;}}}}29package work;import java.util.Scanner;public class Sum{public static void main(String[] args){Scanner scanner = new Scanner(System.in);int[][] a = new int[3][3];int sum = 0;System.out.println("请输入数据:");int i;for(i = 0; i < 3; i++){for(int j = 0; j < 3; j++){a[i][j] = scanner.nextInt();}sum = sum + a[i][i];}System.out.println("sum = " + sum);}}30package work;import java.util.Scanner;public class Sort{public static void main(String[] args){int[] a = new int[4];a[0] = 1;a[1] = 2;a[2] = 4;Scanner scanner = new Scanner(System.in);System.out.println("请输入一个整数:");int number = scanner.nextInt();if(number > a[a.length - 2]){a[a.length - 1] = number;}else{int k = 0;for(int i = a.length - 3; i > 0; i--){if(number > a[i]){k = i;}}for(int j = a.length - 1; j > k ; j--){a[j] = a[j - 1];}a[k + 1] = number;}for(int array : a){System.out.print(array + " ");}}}31package work;public class Array {public static void main(String[] args){int[] a = {1,2,3,4};int t;for(int i = 0; i < a.length / 2; i++){t = a[i];a[i] = a[a.length - i - 1];a[a.length - i -1] = t;}for(int array : a){System.out.print(array);}}}32package work;import java.util.Scanner;public class Move{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入一个整数");String str = scanner.next();int len = str.length();System.out.println(str.charAt(len -4) + " " + str.charAt(len -5) + " " + str.charAt(len -6) + " " + str.charAt(len -7));}}33package work;public class Yanghui{public static void main(String[] args){int n = 6;int a[][] = new int[n][n];a[1][1] = 1;int i;for(i = 2; i < n; i++){a[i][1] = 1;a[i][i] = 1;for(int j = 2; j <= i; j++){a[i][j] = a[i - 1][j - 1] + a[i - 1][j];}}for(i = 1; i < n; i++){for(int j = 0; j < 5 - i; j++){System.out.print(" ");}for(int j = 1; j <= i; j++){System.out.print(a[i][j] + " ");}System.out.println();}}}34package work;import java.util.Scanner;public class Max {public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入a,b,c");int x = scanner.nextInt();int y = scanner.nextInt();int z = scanner.nextInt();if(x < y && x < z){System.out.print(x + " ");if(y < z){System.out.print(y + " " + z);}else if(y > z){System.out.print(z + " " + y);}}else if(y < x && y < z){System.out.print(y + " ");if(x < z){System.out.print(x + " " + z);}else if(x > z){System.out.print(z + " " + x);}}else if(z < y && z < x){System.out.print(z + " ");if(y < x){System.out.print(y + " " + x);}else if(y > x){System.out.print(x + " " + y);}}}}35package work;import java.util.Scanner;public class Maxmin {public static void main(String[] args){Scanner scanner = new Scanner(System.in);int[] a = new int[5];System.out.println("请输入数组值");int max = 0, min = 0, m = 0, n = 0, t = 0;for(int i = 0; i < a.length; i++){a[i] = scanner.nextInt();if(max < a[i]){max = a[i];m = i;}if(min > a[i]){min = a[i];n = i;}}t = a[0];a[0] = max;a[m] = t;t = a[4];a[4] = min;a[n] = t;for(int j = 0; j < a.length; j++){System.out.print(a[j] + " ");}}}36package work;import java.util.Scanner;public class Move{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入5个数");int[] a = new int[5];int[] b = new int[5];for(int i = 0; i < 5; i++){a[i] = scanner.nextInt();}System.out.println("请输入移动的位数n");int n = scanner.nextInt();for(int j = 0; j < 5; j++){b[j] = a[(j + n) % 5];}for(int arr : b){System.out.print(arr + " ");}}}37package work;import java.util.Scanner;public class Stay{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入人数n");int n = scanner.nextInt();boolean[] a = new boolean[n];for(int i = 0; i < a.length; i++){a[i] = true;}int rest = n;int count = 0;int i = 0;while(rest > 1){if(a[i] == true){count++;}if(count == 3){a[i] = false;rest--;count = 0;}i++;i = i % n;}for(i = 0; i < n; i++){if(a[i] == true){System.out.println(i);}}}}38package work;import java.util.Scanner;public class Length{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入字符串");String str = scanner.next();System.out.println("长度为" + getLength(str));}public static int getLength(String s){return s.length();}}39package work;import java.util.Scanner;public class Sum{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入一个数n");int n = scanner.nextInt();System.out.print("和为" + sum(n));}public static double sum(int n){double sum = 0;int k;if(n % 2 == 0){k = 2;}else{k = 1;}for(double i = k; i <= n; i = i + 2){sum = sum + 1.0 / i;}return sum;}}40package work;import java.util.Scanner;import java.util.Arrays;public class Sort{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入一个字符串:");String str = scanner.next();char[] ch = str.toCharArray();Arrays.sort(ch);for(char c : ch){System.out.print(c);}}}41package work;public class Peach{public static void main(String[] args){System.out.println("共有桃子数目为:" + peach(5, 6));}public static int peach(int monkey, int sum){if(monkey == 1){return sum;}else if(monkey != 1){return peach(monkey - 1, sum * 5 + 1);}return 0;}}42package work;public class Number{public static void main(String[] args){for(int i = 10; i < 100; i++){if(809 * i == 800 * i + 9 * i + 1){System.out.println(i);}}}}43package work;public class Count{public static void main(String[] args){int n= 8;int one = n / 2;int two = (n - 1) * n / 2;int three = (n - 1) * n * n / 2;int four = (n - 1) * n * n * n / 2;int five = (n - 1) * n * n * n / 2;int six = (n - 1) * n * n * n * n / 2;int seven = (n - 1) * n * n * n * n * n / 2;int sum = one + two + three + four + five + six + seven;System.out.println(sum);}}44package work;import java.util.Scanner;public class Primer{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入一个偶数");int n = scanner.nextInt();for(int i = 2; i <= n / 2; i++){if(primer(i) && primer(n - i)){System.out.println(n + " = " + i + " + " + (n - i));}}}public static boolean primer(int n){int i;for(i = 2; i <= n; i++){if(n % i == 0){break;}}if(i == n){return true;}else{return false;}}}45package work;//判断一个非素数能被几个9整除import java.util.Scanner;public class Nine{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入一个合数");int number = scanner.nextInt();int count = 0;while(number % 9 == 0){number = number / 9;count++;}System.out.println("能被" + count + "个9整除");}}46package work;import java.util.Scanner;public class Connect{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入两个字符串");String str1 = scanner.next();String str2 = scanner.next();String str3 = str1 + str2;System.out.println("连接后的字符串为" + str3);}}47package work;import java.util.Scanner;public class Print{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入1--50之内的7个数");int[] a = new int[7];for(int i = 0; i < 7; i++){a[i] = scanner.nextInt();}for(int i = 0; i < 7; i++){System.out.println(a[i]);for(int j = 0; j < a[i]; j++){System.out.print("*");}System.out.println();}}}48package work;import java.util.Scanner;public class Secret{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入四位整数:");int a = scanner.nextInt();int b = scanner.nextInt();int c = scanner.nextInt();int d = scanner.nextInt();System.out.println("加密后为" + jiaMi(d) + jiaMi(c) + jiaMi(b) + jiaMi(a));}public static int jiaMi(int num){num = (num + 5) % 10;return num;}}49package work;import java.util.Scanner;public class Str{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("输入一个字符串");String text = scanner.next();System.out.println("请输入一个子字符串");String str = scanner.next();String[] s = text.split(str);System.out.println((s.length - 1) + "次");}}50package work;import java.util.*;import java.io.*;public class Student {private String[] name = new String[5];private String[] number = new String[5];private int score[][] = new int[5][3];private int aver[] = new int[5];public static void main(String[] args)throws IOException{ Scanner scanner = new Scanner(System.in);Student student = new Student();File file = new File("d:\\stud.txt");FileWriter fw = new FileWriter("d:\\stud.txt");BufferedWriter bw = new BufferedWriter(fw);for(int i = 0; i < 5; i++){System.out.println("请输入姓名");[i] = scanner.next();bw.write(" "+[i]);System.out.println("请输入学号");student.number[i] = scanner.next();bw.write(" "+student.number[i]);int sum = 0;for(int j = 0; j < 3; j++){System.out.println("请输入成绩");student.score[i][j] = scanner.nextInt();bw.write( " "+student.score[i][j]);sum = sum + student.score[i][j];}student.aver[i] = sum / 3;bw.write(student.aver[i]);bw.newLine();}bw.close();}}。
JAVA编程题全集(50题及答案).doc
【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月乂生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?〃这是一个菲波拉契数列问题public class lianxiOl {public static void main(String[] args) {System, out. printing 第1 个月的兔子对数:1”);System.out.println(H第 2 个月的兔子对数:1”);int fl = l,f2= 1, f, M=24;for(int i=3; i<=M; i++) {f=f2;f2 = fl + f2;fl =f;System.out.println(n第” + i +“个月的兔子对数:”+⑵;【程序2】题目:判断101-200之间有多少个索数,并输出所有索数。
程序分析:判断索数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,贝9表明此数不是素数,反Z是素数。
public class lianxi02 {public static void main(String[J args) {int count = 0;for(int i=l()l;i<2()(); i+=2) {boolean b = false;for(int j=2; j<=Math.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是一个”水仙花数”,因为153=1的三次方十5的三次方十3的三次方。
50道经典Java逻辑编程题
【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
【程序4】题目:将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序分析:(a> b)?a:b这是条件运算符的基本例子。
【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\n '.【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
朗致 java 算法题
朗致 java 算法题一、入门级算法题1. 编写一个Java程序,实现两个数的交换。
```javapublic class SwapNumbers {public static void main(String[] args) {int a = 5;int b = 10;int temp = a;a = b;b = temp;System.out.println("交换后的结果为:" + "a = " + a + ", b = " + b);}}```2. 编写一个Java程序,实现斐波那契数列的前N项。
```javapublic class Fibonacci {public static void main(String[] args) {int n = 10; // 可以修改为需要计算的斐波那契数列的项数int[] fibonacci = new int[n];fibonacci[0] = 0;fibonacci[1] = 1;for (int i = 2; i < n; i++) {fibonacci[i] = fibonacci[i-1] + fibonacci[i-2];}System.out.println("斐波那契数列前" + n + "项为:" + fibonacci);}}```二、进阶级算法题1. 编写一个Java程序,实现一个函数,输入一个字符串,返回字符串中所有单词的首字母大写后的新字符串。
```javapublic class CapitalizeWords {public static void main(String[] args) {String str = "this is a sample string";String result = capitalizeWords(str);System.out.println("结果为:" + result);}public static String capitalizeWords(String str) {StringBuilder sb = new StringBuilder();for (int i = 0; i < str.length(); i++) {String word = str.substring(i, i+1); // 获取单词的首字母字符sb.append(Character.toUpperCase(word)); // 将单词的首字母转为大写并添加到结果中}return sb.toString(); // 返回结果字符串}}```2. 编写一个Java程序,实现一个函数,输入一个二维数组,返回该数组中所有正负号交替出现的小方阵(行数等于列数)。
JAVA编程题全集(50题及答案)
JAVA编程题全集(50题及答案)【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?//这是一个菲波拉契数列问题publicclasslianxi01{publicstaticvoidmain(String[]args){Syst em.out.println(quot;第1个月的兔子对数:1quot;);System.out.println(quot;第2个月的兔子对数:1quot;);intf1=1,f2=1,f,M=24;for(inti=3;i=M;i++){f=f2;f2= f1+f2;f1=f;System.out.println(quot;第quot;+i+quot;个月的兔子对数:quot;+f2);}}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
publicclasslianxi02{publicstaticvoidmain(String[]args){intc ount=0;for(inti=101;i200;i+=2){booleanb=false;for(intj=2;j= Math.sqrt(i);j++){if(i%j==0){b=false;break;}else{b=true;}}i f(b==true){count++;System.out.println(i);}}System.out.print ln(quot;素数个数是:quot;+count);}}【程序3】题目:打印出所有的quot;水仙花数quot;,所谓quot;水仙花数quot;是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个quot;水仙花数quot;,因为153=1的三次方+5的三次方+3的三次方。
java基础50道经典练习题及答案
JAVA基础编程练习题【程序1】古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?【程序2】判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是【程序3】打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
【程序4】将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
【程序5】利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B 表示,60分以下的用C表示。
【程序6】输入两个正整数m和n,求其最大公约数和最小公倍数。
【程序8】求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
【程序9】一个数如果恰好等于它的因子之和,这个数就称为"完数"。
例如6=1+2+3.编程找出1000【程序10】一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次【程序11】有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
JAVA经典算法50题
{ int[] a={1,2,3,4}; int count=0; for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { for(int k=0;k<4;k++) { if(a[i]!=a[j] && a[j]!=a[k] && a[k]!=a[i]) { System.out.println(a[i]+""+a[j]+""+a[k]); count++; } } } } System.out.println("共有 "+count+" 个数");
} 【程序 5】 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用 A 表示,60-89 分之间 的用 B 表示,60 分以下的用 C 表示。 1.程序分析:(a>b)?a:b 这是条件运算符的基本例子。 public static void main(String args[])
i-1)*2; } System.out.println("第"+n+"次落地时共经过"+distance+"米"); System.out.println("第"+n+"次弹起的高度是:"+fheight);
}
【程序 11】 题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1. 程序分析:可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去 掉
java算法面试经典100题
java算法面试经典100题
很抱歉,我不能提供整个的Java算法面试经典100题,但是我可以提供一些常见的算法题目,供你参考:
1. 两数之和:给定一个整数数组nums和一个目标值target,在数组中找到和为目标值的两个整数,并返回它们的索引。
2. 无重复字符的最长子串:给定一个字符串,请找出其中不含有重复字符的最长子串的长度。
3. 盛最多水的容器:给定n个非负整数a1,a2,...,an,其中每个点的坐标表示(i,ai),在坐标系中画n条垂直线,找出两条线,使得它们与x轴一起构成的容器可以容纳最多的水。
4. 三数之和:给定一个包含n个整数的数组nums,判断nums 中是否存在三个元素a,b,c使得a + b + c = 0.找出所有满足条件且不重复的三元组。
5. 最长回文子串:给定一个字符串s,找到s中最长的回文子串。
假设s的最大长度为1000。
6. Z字形变换:将字符串s按照Z字形排列,并返回排列后的字符串。
假设n行。
7. 两两交换链表中的节点:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
8. 合并两个有序链表:给定两个有序链表,将它们合并为一个新的有序链表并返回。
9. 删除链表的倒数第N个节点:给定一个链表,删除链表的倒数第N个节点,并返回链表的头节点。
10. 字符串转换整数(atoi):实现函数atoi,将字符串转换为整数。
这些题目只是作为参考,你可以根据自己的需求和面试的具体要求进行更换或增加。
在准备面试时,最好根据自己的能力和时间安排一个合理的计划,重点练习一些自认为难度适中且常见的问题。
java贪心算法几个经典例子
java贪心算法几个经典例子
1. 零钱兑换问题
给定面额为1、5、10、25的硬币,以及一个需要兑换的金额,问最少需要多少硬币才能兑换成功。
解法:每次选择面额最大的硬币兑换,直到兑换完毕为止。
2. 分糖果问题
有m个糖果,要分给n个孩子,每个孩子至少分到一个糖果,且每个孩子分到的糖果数应尽量相近,求最小的糖果差。
解法:将m个糖果按照大小排序,依次将糖果分给n个孩子,每次将糖果分给最少的孩子。
3. 区间覆盖问题
给定多个区间,问最少需要选多少个区间才能覆盖全集。
解法:每次选择与当前未被覆盖的部分交集最大的区间添加到答案中,直到所有部分被覆盖完毕为止。
4. 任务调度问题
有n个任务需要完成,每个任务需要占用不同的时间,同时每个任务都有一个
最后期限,问如何调度任务才能最大程度地避免超时。
解法:将所有任务按照最后期限排序,依次将任务安排到最后期限之前的最近空闲时间点,尽量将任务时间安排得紧凑。
非常经典的JAVA编程题全集(50题及答案)
【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....public class Prog1{public static void main(String[] args){int n = 10;System.out.println("第"+n+"个月兔子总数为"+fun(n));}private static int fun(int n){if(n==1 || n==2)return 1;elsereturn fun(n-1)+fun(n-2);}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
public class Prog2{public static void main(String[] args){int m = 1;int n = 1000;int count = 0;//统计素数个数for(int i=m;i<n;i++){if(isPrime(i)){count++;System.out.print(i+" ");if(count%10==0){System.out.println();}}}System.out.println();System.out.println("在"+m+"和"+n+"之间共有"+count+"个素数"); }//判断素数private static boolean isPrime(int n){boolean flag = true;if(n==1)flag = false;else{for(int i=2;i<=Math.sqrt(n);i++){if((n%i)==0 || n==1){flag = false;break;}elseflag = true;}}return flag;}}【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
JAVA经典算法40题
JAVA经典算法40题之杨若古兰创作【程序1】题目:古典成绩:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....publicclass exp2{publicstaticvoid main(String args[]){int i=0;for(i=1;i<=20;i++)System.out.println(f(i));}publicstaticint f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}}或publicclass exp2{publicstaticvoid main(String args[]){int i=0;math mymath = new math();for(i=1;i<=20;i++)System.out.println(mymath.f(i));}}class math{publicint f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数.1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则标明此数不是素数,反之是素数.publicclass exp2{publicstaticvoid main(String args[]){int i=0;math mymath = new math();for(i=2;i<=200;i++)if(mymath.iszhishu(i)==true)System.out.println(i);}}class math{publicint f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}publicboolean iszhishu(int x){for(int i=2;i<=x/2;i++)if (x % 2==0 )returnfalse;returntrue;}}【程序3】题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本人.例如:153是一个 "水仙花数 ",由于153=1的三次方+5的三次方+3的三次方.1.程序分析:利用for轮回控制100-999个数,每个数分解出个位,十位,百位.publicclass exp2{publicstaticvoid main(String args[]){int i=0;math mymath = new math();for(i=100;i<=999;i++)if(mymath.shuixianhua(i)==true)System.out.println(i);}}class math{publicint f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}publicboolean iszhishu(int x){for(int i=2;i<=x/2;i++)if (x % 2==0 )returnfalse;returntrue;}publicboolean shuixianhua(int x){int i=0,j=0,k=0;i=x / 100;j=(x % 100) /10;k=x % 10;if(x==i*i*i+j*j*j+k*k*k)returntrue;elsereturnfalse;}}【程序4】题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5.程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步调完成:(1)如果这个质数恰等于n,则说明分解质因数的过程曾经结束,打印出即可.(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你,反复履行第一步.(3)如果n不克不及被k整除,则用k+1作为k的值,反复履行第一步. publicclass exp2{public exp2(){}publicvoid fengjie(int n){for(int i=2;i<=n/2;i++){if(n%i==0){System.out.print(i+"*");fengjie(n/i);}}System.out.print(n);System.exit(0);///不克不及少这句,否则结果会出错}publicstaticvoid main(String[] args){String str="";exp2 c=new exp2();str=javax.swing.JOptionPane.showInputDialog("请输入N的值(输入exit退出):");N=0;try{N=Integer.parseInt(str);}catch(NumberFormatException e){e.printStackTrace();}System.out.print(N+"分解质因数:"+N+"=");c.fengjie(N);}}【程序5】题目:利用条件运算符的嵌套来完成此题:进修成绩> =90分的同学用A暗示,60-89分之间的用B暗示,60分以下的用C暗示.1.程序分析:(a> b)?a:b这是条件运算符的基本例子.import javax.swing.*;publicclass ex5 {publicstaticvoid main(String[] args){String str="";str=JOptionPane.showInputDialog("请输入N的值(输入exit退出):");int N;N=0;try{N=Integer.parseInt(str);}catch(NumberFormatException e){e.printStackTrace();}str=(N>90?"A":(N>60?"B":"C"));System.out.println(str);}}【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公1.程序分析:利用辗除法.最大公约数:publicclass CommonDivisor{publicstaticvoid main(String args[]){commonDivisor(24,32);}staticint commonDivisor(int M, int N){if(N<0||M<0){System.out.println("ERROR!");return -1;}if(N==0){System.out.println("the biggest common divisor is :"+M); return M;}return commonDivisor(N,M%N);}}最小公倍数和最大公约数:import;publicclass CandC{//上面的方法是求出最大公约数publicstaticint gcd(int m, int n){while (true){if ((m = m % n) == 0)return n;if ((n = n % m) == 0)return m;}}publicstaticvoid main(String args[]) throws Exception{//取得输入值//Scanner chin = new Scanner(System.in);//int a = chin.nextInt(), b = chin.nextInt();int a=23; int b=32;int c = gcd(a, b);System.out.println("最小公倍数:" + a * b / c + "\n最大公约数:" + c); }}【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数.1.程序分析:利用while语句,条件为输入的字符不为 '\n '.import java.util.Scanner;publicclass ex7 {publicstaticvoid main(String args[]){System.out.println("请输入字符串:");Scanner scan=new Scanner(System.in);String str=scan.next();String E1="[\u4e00-\u9fa5]";String E2="[a-zA-Z]";int countH=0;int countE=0;char[] arrChar=str.toCharArray();String[] arrStr=new String[arrChar.length];for (int i=0;i<arrChar.length ;i++ ){arrStr[i]=String.valueOf(arrChar[i]);}for (String i: arrStr ){if (i.matches(E1)){countH++;}if (i.matches(E2)){countE++;}}System.out.println("汉字的个数"+countH);System.out.println("字母的个数"+countE);}}【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制.1.程序分析:关键是计算出每一项的值.import java.io.*;publicclass Sumloop {publicstaticvoid main(String[] args) throws IOException{int s=0;String output="";BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));System.out.println("请输入a的值");String input =stadin.readLine();for(int i =1;i<=Integer.parseInt(input);i++){output+=input;int a=Integer.parseInt(output);s+=a;}System.out.println(s);}}另解:import java.io.*;publicclass Sumloop {publicstaticvoid main(String[] args) throws IOException{int s=0;int n;int t=0;BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));String input = stadin.readLine();n=Integer.parseInt(input);for(int i=1;i<=n;i++){t=t*10+n;s=s+t;System.out.println(t);}System.out.println(s);}}【程序9】题目:一个数如果恰好等于它的因子之和,这个数就称为"完数 ".例如6=1+2+3.编程找出1000之内的所有完数. publicclass Wanshu {publicstaticvoid main(String[] args){int s;for(int i=1;i<=1000;i++){s=0;for(int j=1;j<i;j++)if(i % j==0)s=s+j;if(s==i)System.out.print(i+" ");}System.out.println();}}【程序10】题目:一球从100米高度自在落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?publicclass Ex10 {publicstaticvoid main(String[] args){double s=0;double t=100;for(int i=1;i<=10;i++){s+=t;t=t/2;}System.out.println(s);System.out.println(t);}}【程序11】题目:有1、2、3、4个数字,能构成多少个互不不异且无反复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4.构成所有的排列后再去掉不满足条件的排列.publicclass Wanshu {publicstaticvoid main(String[] args){int i=0;int j=0;int k=0;int t=0;for(i=1;i<=4;i++)for(j=1;j<=4;j++)for(k=1;k<=4;k++)if(i!=j && j!=k && i!=k){t+=1;System.out.println(i*100+j*10+k);}System.out.println (t);}}【程序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%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位.留意定义时需把奖金定义成长整型.import java .util.*;publicclass test {publicstaticvoid main (String[]args){double sum;//声明要储存的变量应发的奖金Scanner input =new Scanner (System.in);//导入扫描器System.out.print ("输入当月利润");double lirun=input .nextDouble();//从控制台录入利润if(lirun<=100000){sum=lirun*0.1;}elseif (lirun<=200000){sum=10000+lirun*0.075;}elseif (lirun<=400000){sum=17500+lirun*0.05;}elseif (lirun<=600000){sum=lirun*0.03;}elseif (lirun<=1000000){sum=lirun*0.015;} else{sum=lirun*0.01;}System.out.println("应发的奖金是"+sum);}}后面其他情况的代码可以由读者自行完美.【程序13】题目:一个整数,它加上100后是一个完整平方数,加上168又是一个完整平方数,请问该数是多少?1.程序分析:在10万之内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果.请看具体分析:publicclass test {publicstaticvoid main (String[]args){long k=0;for(k=1;k<=100000l;k++)if(Math.floor(Math.sqrt(k+100))==Math.sqrt(k+100) &&Math.floor(Math.sqrt(k+168))==Math.sqrt(k+168))System.out.println(k);}}【程序14】题目:输入某年某月某日,判断这一天是这一年的第几天?1.程序分析:以3月5日为例,应当先把前两个月的加起来,然后再加上5天即今年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天.import java.util.*;publicclass test {publicstaticvoid main (String[]args){int day=0;int month=0;int year=0;int sum=0;int leap;System.out.print("请输入年,月,日\n"); Scanner input = new Scanner(System.in);year=input.nextInt();month=input.nextInt();day=input.nextInt();switch(month) /*先计算某月之前月份的总天数*/ {case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;sum=334;break;default:System.out.println("data error");break;}sum=sum+day; /*再加上某天的天数*/if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ leap=1;elseleap=0;if(leap==1 && month>2)/*如果是闰年且月份大于2,总天数应当加一天*/ sum++;System.out.println("It is the the day:"+sum);}}【程序15】题目:输入三个整数x,y,z,请把这三个数由小到大输出.1.程序分析:我们设法子把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的值进行交换,然后再用x与z进行比较,如果x> z则将x与z的值进行交换,如许能使x最小.import java.util.*;publicclass test {publicstaticvoid main (String[]args){int i=0;int j=0;int k=0;int x=0;System.out.print("请输入三个数\n");Scanner input = new Scanner(System.in);i=input.nextInt();j=input.nextInt();k=input.nextInt();if(i>j){x=i;j=x;}if(i>k){x=i;i=k;k=x;}if(j>k){x=j;j=k;k=x;}System.out.println(i+", "+j+", "+k);}}【程序16】题目:输出9*9口诀.1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列. publicclass jiujiu {publicstaticvoid main(String[] args){int i=0;int j=0;for(i=1;i<=9;i++){for(j=1;j<=9;j++)System.out.print(i+"*"+j+"="+i*j+"\t");System.out.println();}}}不出现反复的乘积(下三角)publicclass jiujiu {publicstaticvoid main(String[] args){int i=0;int j=0;for(i=1;i<=9;i++){for(j=1;j<=i;j++)System.out.print(i+"*"+j+"="+i*j+"\t");System.out.println();}}}上三角publicclass jiujiu {publicstaticvoid main(String[] args){int i=0;int j=0;for(i=1;i<=9;i++){for(j=i;j<=9;j++)System.out.print(i+"*"+j+"="+i*j+"\t");System.out.println();}}}【程序17】题目:猴子吃桃成绩:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.当前每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. 1.程序分析:采纳逆向思维的方法,从后往前推断.publicclass猴子吃桃 {staticint total(int day){if(day == 10){return 1;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
public static void main(String[] args) throws Exception { int i,j,count=0; for(i=101;i<200;i++) { for(j=2;j<(int)(Math.sqrt(i)+1);j++) { if(i%j==0) break; } if(j>(int)Math.sqrt(i)) { System.out.println(i); count++; } } System.out.println("201到200之间共有"+count+"个素数!"); }
} 【程序 5】 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用 A 表示,60-89 分之间 的用 B 表示,60 分以下的用 C 表示。 1.程序分析:(a>b)?a:b 这是条件运算符的基本例子。 public static void main(String args[])
}
【程序 2】 题目:判断 101-200 之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除 2 到 sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public static void main(String args[])
{ int i,n,flag; for(n=101;n<200;n++) { flag=0; for(i=2;i<n;i++) { if(n%i==0) { flag=1; break; } } if(flag==0) { System.out.println(i); } }
{ Scanner sc=new Scanner(System.in); String str=sc.nextLine(); int letterCount=0,numCount=0,spaceCount=0,otherCount=0; for(int i=0;i<str.length();i++) { char c=str.charAt(i); if((c>='a' && c<='z')||(c>='A' && c<='Z')) letterCount++; else if(c>='0'&&c<='9') numCount++; else if(c==' ') spaceCount++; else otherCount++; } System.out.println("字母有 "+letterCount+" 个"); System.out.println("数字有 "+numCount+" 个"); System.out.println("空格有 "+spaceCount+" 个"); System.out.println("其它有 "+otherCount+" 个");
提成 1.5%,高于 100 万元时,超过 100 万元的部分按 1%提成,从键盘输入当月利润 I,求 应发放奖金总数?
1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 public class A2 {
【程序 3】 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于 该数本身。例如: 153 是一个"水仙花数",因为 153=1 的三次方+5 的三次方+3 的三次方。 1. 程序分析:利用 for 循环控制 100-999 个数,每个数分解出个位,十位,百位。 public static void main(String args[])
t=a; a=b; b=t; } t=a%b; while(t!=0) { a=b; b=t; t=a%b; } System.out.println("最大公约数是:"+b); System.out.println("最小公倍数是:"+na*nb/b); }
【程序 7】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用 while 语句,条件为输入的字符不为'\n'. public static void main(String[] args)
} 【程序 6】 题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。 public static void main(String args[])
{ Scanner sc = new Scanner(System.in); System.out.println("输入两个整数:a和b"); int a = sc.nextInt(); int b = sc.nextInt(); int na=a,nb=b; //令na和nb分别保存a和b的初始值 int t; //定义中间变量t if(a<b) {
str.length()-1)+"="+sum); }
【程序 9】 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如 6=1+2+3.编程 找 出 1000 以内的所有完数。 public static void main(String args[])
{ int i,n,sum=0; System.out.println("输出1~1000的所有完数:"); for(n=1;n<=1000;n++) { for(i=1;i<=n/2;i++) { if(n%i==0) { sum=sum+i; } } if(sum==n) { System.out.println(n); } sum=0; }
【程序 1】 题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个 月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列 1,1,2,3,5,8,13,21.... public static void main(String[] args)
不满足条件的排列。 public static void main(String args[])
{ int[] a={1,2,3,4}; int count=0; for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { for(int k=0;k<4;k++) { if(a[i]!=a[j] && a[j]!=a[k] && a[k]!=a[i]) { System.out.println(a[i]+""+a[j]+""+a[k]); count++; } } } } System.out.println("共有 "+count+" 个数");
{ Scanner sc=new Scanner(System.in); S和项数n:"); int a=sc.nextInt(); int n=sc.nextInt(); String str=""; int s=0,sum=0; int i; for(i=0;i<n;i++) { s=s+(int)Math.pow(10,i)*a; sum=sum+s; str +=s+"+"; } System.out.println("则有:"+str.substring(0,
{ Scanner sc=new Scanner(System.in); System.out.println("请输入学生成绩score:"); int score=sc.nextInt(); char c=(score>=90)?'A':((score<60)?'C':'B'); System.out.println("该学生分数是:"+score+" 等级是:"+c);
}
【程序 12】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于 10 万元时,奖金可提 10%;利润 高于 10 万元,低于 20 万
元时,低于 10 万元的部分按 10%提成,高于 10 万元的部分,可可提成 7.5%;20 万到 40 万 之间时,高于 20 万元的部
分,可提成 5%;40 万到 60 万之间时高于 40 万元的部分,可提成 3%;60 万到 100 万之间时, 高于 60 万元的部分,可
{ Scanner sc=new Scanner(System.in); System.out.println("请输入月数:"); int month=sc.nextInt(); int a=0,b=1,i,t; for(i=2;i<=month;i++) { t=b; b=a+b; a=t; } System.out.println("第"+month+"个月有"+b+"对兔子!");