Java经典算法(四)
说明:共有四十题。本部分为第四部分,共十题。
31、

题目:将一个数组逆序输出。

package com.remoa.algorithm.day16;import java.util.Random;/*** 题目:将一个数组逆序输出。 * @author Remoa**/
public class ArrayReverse {public static void algorithm(int[] arr){for(int i = arr.length - 1; i >= 0; i--){System.out.print(arr[i] + " ");}}public static void main(String[] args) {Random random = new Random();int[] arr = new int[10];System.out.println("原数组为:");for(int i = 0; i < 10; i++){arr[i] = random.nextInt(100);System.out.print(arr[i] + " ");}System.out.println();System.out.println("逆序输出的结果为:");algorithm(arr);}}

运行结果:

图31.1 第31题运行结果

32、

题目:取一个整数 a 从右端开始的 4 ~ 7 位。

package com.remoa.algorithm.day16;import java.util.Random;/*** 题目:取一个整数a从右端开始的4~7位。* @author Remoa**/
public class IntegerDecompose {public static int algorithm(int number, int count){int result = number % (int)Math.pow(10, count);return result;}public static void main(String[] args) {Random random = new Random();int number = random.nextInt(9989999) + 10000;System.out.println("该整数为:" + number);int count = 1, temp = number;while(temp / 10 != 0){count++;temp /= 10;}for(int i = 4; i <= count; i++){System.out.println("保留右端" + i + "位为:" + algorithm(number, i));}}
}

运行结果:

图32.1 第32题运行结果
33、题目: 打印出杨辉三角形前十行 

1

1   1

1   2   1

1   3   3   1

1   4   6   4   1

1   5   10   10   5   1

package com.remoa.algorithm.day17;
/*** 打印出杨辉三角形前十行   * 1   * 1   1   * 1   2   1   * 1   3   3   1   * 1   4   6   4   1   * 1   5   10   10   5   1   * @author Remoa**/
public class YanghuiTriangle {public static int[][] algorithm(){int[][] arr = new int[10][10];arr[0][0] = 1;for(int i = 1; i < 10; i++){arr[i][0] = 1;for(int j = 1; j < i + 1; j++){arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];}}return arr;}public static void main(String[] args) {int arr[][] = algorithm();for(int i = 0; i < arr.length; i++){for(int j = 0; j <= i; j++){System.out.print(arr[i][j] + " ");}System.out.println();}}
}

运行结果:

图33.1 第33题运行结果

34、题目:输入3个数a,b,c,按大小顺序输出。

package com.remoa.algorithm.day17;import java.util.Random;/*** 题目:输入3个数a,b,c,按大小顺序输出。* @author Remoa**/
public class SortNum {//升序排序public static void algorithm(int arr[]){int temp;for(int i = 0; i < arr.length; i++){for(int j = i + 1; j < arr.length; j++){if(arr[j] < arr[i]){temp = arr[j];arr[j] = arr[i];arr[i] = temp;}}}System.out.println("数组按照升序排序为:");for(int i = 0; i < arr.length; i++){System.out.print(arr[i] + " ");}}public static void main(String[] args) {Random random = new Random();int[] arr = new int[3];System.out.println("原数组的排列顺序为:");for(int i = 0; i < 3; i++){arr[i] = random.nextInt(100);System.out.print(arr[i] + " ");}System.out.println();algorithm(arr);}
}

运行结果:

图34.1 第34题运行结果

35、题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

package com.remoa.algorithm.day18;import java.util.Random;/*** 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。* @author Remoa**/
public class ArraySort {public static void algorithm(int arr[]){int max = arr[0], min = arr[0];int maxi = 0, mini = 0;for(int i = 0; i < arr.length; i++){if(arr[i] > max){max = arr[i];maxi = i;}if(arr[i] < min){min = arr[i];mini = i;}}arr[mini] = arr[arr.length - 1];arr[arr.length - 1] = min;arr[maxi] = arr[0];arr[0] = max;System.out.println("交换后的结果为:");for(int i = 0; i < arr.length; i++){System.out.print(arr[i] + " ");}}public static void main(String[] args) {Random random = new Random();int[] arr = new int[10];System.out.println("原数组的排列顺序为:");for(int i = 0; i < 10; i++){arr[i] = random.nextInt(100);System.out.print(arr[i] + " ");}System.out.println();algorithm(arr);}
}

运行结果:

图35.1 第35题运行结果

36、题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

package com.remoa.algorithm.day18;import java.util.Random;/*** 题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数* @author Remoa**/
public class MoveNumber {public static void algorithm(int arr[], int loca){int[] arr1 = new int[10];for(int i = 0; i < arr.length; i++){arr1[i] = arr[i];}for(int i = 0; i < arr.length - loca; i++){arr1[i + loca] = arr[i];}for(int i = 0; i < loca; i++){arr1[i] = arr[i + arr.length - loca];  }System.out.println("移动后的结果为:");for(int i = 0; i < arr1.length; i++){System.out.print(arr1[i] + " ");}}public static void main(String []args){Random random = new Random();int[] arr = new int[10];int n = 10;int m = random.nextInt(3) + 2;System.out.println("n和m的值分别为:" + n + " " + m);System.out.println("原来n个整数的排列为:");for(int i = 0; i < n; i++){arr[i] = random.nextInt(100);System.out.print(arr[i] + " ");}System.out.println();algorithm(arr, m);}
}

运行结果:

图36.1 第36题运行结果

37、题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

package com.remoa.algorithm.day19;import java.util.Random;/*** 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。* @author Remoa**/
public class RemainWho {public static void algorithm(int n){int arr[] = new int[n];int count = n;int countNumber = 0, index = 0;while(count != 1){if(arr[index] == 0 && countNumber != 3){++countNumber;}if(countNumber == 3){countNumber = 0;arr[index] = 1;count--;}index++;if(index == n){index = 0;}}for(int i = 0; i < arr.length; i++){if(arr[i] == 0){System.out.println("留下来的是第" + i + "位");}}}public static void main(String[] args) {Random random = new Random();int n = random.nextInt(50) + 50;System.out.println("共有" + n + "个人");algorithm(n);}
}

运行结果:

图37.1 第37题运行结果

38、

题目:写一个函数,求一个字符串的长度,在 main 函数中输入字符串,并输出其长度。

package com.remoa.algorithm.day19;import java.util.Scanner;/*** 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。* @author Remoa**/
public class StringLength {public static int algorithm(String s){return s.length();}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入一个字符串:");String str = scanner.next();System.out.println(algorithm(str));scanner.close();}
}

运行结果:

图38.1 第38题运行结果

39、

题目:字符串排序。

package com.remoa.algorithm.day20;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;/*** 字符串排序。* @author Remoa**/
public class SortString {public static void algorithm(List<String> list){Collections.sort(list);System.out.println("排序后的结果为:");for(int i = 0; i < list.size(); i++){System.out.println(list.get(i));}}public static void main(String[] args) {Random random = new Random();String str = "1234567890qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM";List<String> list = new ArrayList<String>();System.out.println("生成的随机字符串为:");//生成五条随机字符串for(int count = 1; count <= 5; count++){String s = "";for(int i = 0; i < 10; i++){int number = random.nextInt(62);s += str.charAt(number);}list.add(s);System.out.println(s);}algorithm(list);}
}

运行结果:

图39.1 第39题运行结果

40、

题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

package com.remoa.algorithm.day20;
/*** 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?* @author Remoa**/
public class MoneyAndPeach {public static void algorithm(){int m = 1, i = 0, x = 1;//从1开始遍历,直到得到连续5次除法都能整除的整数,即为桃子的数目最小值while(true){m = x;for(i = 0; i < 5; i++){if((m - 1) % 5 == 0){m = (m - 1) / 5 * 4;}else{break;}}if(i == 5){break;}x++;}System.out.println("原来最少有" + x + "个桃子");}public static void main(String[] args) {algorithm();}
}

运行结果:


图40.1 第40题运行结果

Java经典算法(四)相关推荐

  1. java经典算法四十题

    java经典算法四十题 [程序9]题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 ".例如6=1+2+3.编程找出1000以内的所有完数. public class W ...

  2. Java经典算法四十例编程详解+程序实例

    JAVA经典算法40例 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: ...

  3. JAVA经典算法50题(转)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51097928 JAVA经典算法50题 [程序1]   题目:古典问题:有一对兔子, ...

  4. java经典100例算法题_10道java经典算法题,每一题都能帮你提升java水平!

    JAVA经典算法题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子 ...

  5. java求最大公约数_10道java经典算法题,小白必备,每一题都能提升你的java能力...

    JAVA经典算法 跪求关注,祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早上贵子,从不掉发! 更多java资料可以私信我领取! [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每 ...

  6. JAVA经典算法大全

    JAVA经典算法大全 from http://java-mans.iteye.com/blog/16457031.河内之塔 2.Algorithm Gossip: 费式数列. 3.巴斯卡三角形 4.A ...

  7. JAVA经典算法40题

    JAVA经典算法40题 [程序1]  题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析 ...

  8. 生产实践中的经典算法(四)-BitMap

    生产实践中的经典算法(四)-BitMap 1.BitMap的原理 位图(Bitmap),即位(Bit)的集合,是一种数据结构,可用于记录大量的0-1状态,在很多地方都会用到,比如Linux内核(如in ...

  9. java经典问题算法大全_10道java经典算法!每一题都能提升你的java能力!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 10道java经典算法! [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位. ...

最新文章

  1. Facebook 万字长文:AI 模型全部迁移至 PyTorch 框架
  2. 【Effective Java】1.静态工厂方法来替换构造函数
  3. ssh框架分页显示问题
  4. how SAP gateway parse_meta_tags
  5. tomcat启动后命令行日志中文乱码
  6. java项目连接jboss中数据库_月光软件站 - 编程文档 - Java - JBOSS3.2.5中MYSQL数据库连接池的建立与测试...
  7. 执行git命令出现 xcrun: error:
  8. Xshell官网免费版下载实用
  9. 宝塔php伪静态规则,宝塔BT面板伪静态规则大全汇总
  10. mysql中删除两条重复的数据,只保留一条
  11. 前端可视化技术-笔记
  12. 详解Unity中的粒子系统Particle System (十一)
  13. Python拼接图片
  14. Altera特殊管脚的使用(适用全系列Altera FPGA,MSEL区别除外)-来自altera论坛
  15. Codeup 小白鼠排队
  16. C++ map用法总结(整理)
  17. 超700名研究生被清退,硕博生毕业,更难了
  18. codeforces 577B Modulo Sum
  19. 【黑盒测试】场景法和错误推断法
  20. python requests请求接口返回304问题解决

热门文章

  1. 2018年CES展总结
  2. 说程序员是最累的,运维的同学不乐意了!
  3. Matlab绘图手动修改subplot之间的竖直方向间距
  4. 【程序猿历程】一个三年工作经验和月薪16k的java程序员应该要具备什么样的技能?
  5. ht城市介绍人口数量Html,城市人口英文作文
  6. 传智健康—第1章 项目概述和环境搭建
  7. 【C/C++基础】11_用户自定义数据类型
  8. html5中div怎么横着写,html5:div 横向排列的方法
  9. 在虚拟机上搭建xss平台
  10. Abbkine柱式法ExKine Pro动物细胞/组织总蛋白提取试剂盒