java 小算法
- //鸡兔同笼 20个头 58腿
- for(int a=0;a<=20;a++) {
- int b = 20-a;
- if((2*b+4*a)==58) {
- System.out.println(a+","+b);
- }
- }
- //百钱买百鸡 公鸡 3 母鸡 2 小鸡一元三只
- //方法一:这种方法是错的 原因c/3 这个根据钱的数量进行循环
- for(int i=0;i<100;i++) {
- for(int j=0;j<100;j++) {
- int c = 100-i-j;
- if((i*3+j*2+c/3)==100) {
- System.out.println(i+","+j+","+c);
- }
- }
- }
- //方法2:还可以根据数量进行循环
- for(int a=0;a<=33;a++) {
- int x = (100-a*3)/2; //母鸡的数量
- for(int b=0;b<=x;b++) {
- int c = 100-a-b;
- if(c%3!=0)continue;
- if((a*3+b*2+c/3)==100) {
- System.out.println(a+","+b+","+c);
- }
- }
- }
- //冒泡排序
- int[] a = {4,5,3,6,8,7,9};
- for(int i=0;i<a.length-1;i++) {
- for(int j=0;j<a.length-1-i;j++)
- if(a[j]<a[j+1]) {
- int t=a[j];
- a[j]=a[j+1];
- a[j+1]=t;
- }
- }
- for(int i=0;i<a.length;i++) {
- System.out.print(a[i]+"\t");
- }
- //选择排序
- int[] a = {1,5,3,6,8,7,9};
- for(int i=0;i<a.length-1;i++) {
- for(int j=i+1;j<a.length;j++) {
- if(a[i]>a[j]) {
- int t = a[i];
- a[i] = a[j];
- a[j] =t;
- }
- }
- }
- for(int i=0;i<a.length;i++) {
- System.out.print(a[i]);
- }
- public class departSort {
- public static void main(String[] args) {
- int[] a = {2,4,6,7,9};
- //二分查找算法
- System.out.println(search(a,7,0,a.length-1));
- }
- private static int search(int[] a, int value, int start, int end) {
- // TODO Auto-generated method stub
- if(start>end) {
- return -1;
- }
- int middle = (start+end)/2;
- int middleValue = a[middle];
- if(value>middleValue) {
- return search(a, value, middle+1, end);
- }
- else if(value<middleValue) {
- return search(a, value, start, middle-1);
- }
- else return middle;
- }
- }
- //查重算法1
- int[] a = {2,1,6,4,5,6,1,4,2};
- int b = 012;
- System.out.println(b);
- //查重算法 112244566
- Arrays.sort(a);
- boolean flag = false;
- for(int i=0;i<a.length-1;i+=2) {
- if(a[i]!=a[i+1]) {
- flag = true;
- System.out.println(a[i]);
- break;
- }
- }
- if(!flag) {
- System.out.println(a[a.length-1]);
- }
- //查重算法二:充分利用异或相同为0不同为1
- int[] a= {1,4,4,6,7,9,6,7,1};
- int result=0;
- for(int i=0;i<a.length;i++) {
- result ^= a[i];
- }
- System.out.println(result);
- //桶排序
- int[] a= {1,5,3,6,2,3,4,6,9};
- int[] b = new int[21];
- for(int i=0;i<a.length;i++) {
- b[a[i]]++;
- }
- for(int i=0;i<a.length;i++) {
- //b[i]中有几个数就循环打印几次
- for(int j=1;j<=b[i];j++) {
- System.out.print(i+"\t");
- }
- }
- import java.util.Scanner;
- public class Test24{
- public static void main(String[] args){
- Scanner sc = new Scanner(System.in);
- int n = sc.nextInt();
- for(int i=1;i<=n;i++){
- for(int j=1;j<=n-(i-1);j++){
- System.out.print(j+"\t");
- }
- System.out.println();
- }
- }
- }
- import java.util.Scanner;
- public class Test25{
- public static void main(String[] args){
- System.out.println("请输入一个正整数:");
- Scanner s = new Scanner(System.in);
- int n = s.nextInt();
- for(int i=1;i<=n;i++){
- for(int j=1;j<=n-i;j++){
- System.out.print(" ");
- }
- for(int j=1;j<=2*i-1;j++){
- System.out.print("*");
- }
- System.out.println();
- }
- }
- }
//. 验证哥德巴赫猜想:任何一个大于 6 的偶数,都能分解成两个质数的和。
//要求输入一个整数,输出 这个数能被分解成哪两个质数的和。
//例如:输入一个整数 14 输出结果:14=3+11 14=7+7
- public class Exc13{
- public static void main(String[] args){
- java.util.Scanner s = new java.util.Scanner(System.in);
- int n= s.nextInt();
- if (n <= 6 || n % 2 !=0) {
- System.out.println("输入有误");
- return ;
- }
- //一个数的加数最多是这两个加数相同,否则必定会一个大于1/2另外一个小于1/2
- //所以循环的时候只需要循环一个数的1/2即可只要找到一个必定会找到另外一个
- for(int a = 3 ; a <= n/2 ; a+=2){
- int b = n-a;
- //判断加数是不是质数
- if (isPrime(a) && isPrime(b) ){
- System.out.println(a+"+"+b);
- }
- }
- }
- public static boolean isPrime(int x){
- double d = Math.sqrt(x);
- for(int i = 3 ; i <= d ; i+=2){
- if (x % i == 0) return false;
- }
- return true;
- }
- }
在国际象棋的棋盘上, 放置8个皇后, 要求任何两个皇后之间,不能相互吃掉, 请输出所有的放置的可能
- public class EightQueen {
- public static void main(String[] args) {
- int[] a = new int[8]; //a[i]=j 第i行的皇后放在第j列
- place(a , 0);
- }
- //计算第row行的皇后放在第几列 a[row]=?
- static void place(int[] a , int row){
- if (row == 8) {
- for(int i = 0 ; i < 8 ; i++){
- System.out.print(a[i]+"\t");
- }
- System.out.println();
- return;
- }
- //把第row行的皇后放好
- outer:for(a[row] = 0; a[row] < 8;a[row]++){
- //判断a[row] 和 前面的row行是不是冲突
- for(int i = 0 ; i< row; i++){
- //判断a[row] 和 a[i]是不是冲突
- if(a[row]==a[i] || a[row]-a[i]==row-i || a[row]-a[i]==i-row)
- continue outer;
- }
- //放下一行
- place(a , row+1);
- }
- }
- }
java 小算法的更多相关文章
- 第一章 大体知道java语法1----------能写java小算法
很多人开始学习java时,都是抱着诸如<Thinking in java>.<疯狂java>等书籍,从前到后慢慢翻看,不管其内容重要与否,也不关心自己以后能否使用到.我的建议是 ...
- 献上两个java小算法
直接上代码: /** * Name: 求数组中元素重复次数对多的数和重复次数 * Description: * 数组中的元素可能会重复,这个方法可以找出重复次数最多的数,同时可以返回重复了多少次. * ...
- java小算法—大衍数列
题目: 中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理. 它的前几项是:0.2.4.8.12.18.24.32.40.50 ... 其规律是:对偶数项,是序号平 ...
- Java排序算法之直接选择排序
Java排序算法之直接选择排序 基本过程:假设一序列为R[0]~R[n-1],第一次用R[0]和R[1]~R[n-1]相比较,若小于R[0],则交换至R[0]位置上.第二次从R[1]~R[n-1]中选 ...
- Java与算法之(13) - 二叉搜索树
查找是指在一批记录中找出满足指定条件的某一记录的过程,例如在数组{ 8, 4, 12, 2, 6, 10, 14, 1, 3, 5, 7, 9, 11, 13, 15 }中查找数字15,实现代码很简单 ...
- java排序算法(十):桶式排序
java排序算法(十):桶式排序 桶式排序不再是一种基于比较的排序方法,它是一种比较巧妙的排序方式,但这种排序方式需要待排序的序列满足以下两个特征: 待排序列所有的值处于一个可枚举的范围之类: 待排序 ...
- java排序算法(五):快速排序
java排序算法(五):快速排序 快速排序是一个速度非常快的交换排序算法,它的基本思路很简单,从待排的数据序列中任取一个数据(如第一个数据)作为分界值,所有比它小的元素放到左边.所有比它大的元素放到右 ...
- java排序算法(四):冒泡排序
java排序算法(四):冒泡排序 冒泡排序是计算机的一种排序方法,它的时间复杂度是o(n^2),虽然不及堆排序.快速排序o(nlogn,底数为2).但是有两个优点 1.编程复杂度很低.很容易写出代码 ...
- java排序算法(三):堆排序
java排序算法(三)堆排序 堆积排序(HeapSort)是指利用堆积树这种结构所设计的排序算法,可以利用数组的特点快速定位指定索引的元素.堆排序是不稳定的排序方法.辅助空间为O(1).最坏时间复杂度 ...
随机推荐
- AlexNet论文总结
论文链接:https://papers.nips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf Q1:解决了什么? 目前主 ...
- NOIP 模拟 $27\; \rm 牛半仙的妹子图$
题解 \(by\;zj\varphi\) 颜色数很少,考虑枚举颜色数. 建出来一棵最小生成树,可以证明在最小生成树上,一个点到另一个点的路径上的最大权值最小(易证,考虑 \(\rm kruskal\) ...
- NOIP 模拟 6 考试总结
T1 这道题是一道裸的暴力,考场写挂了 \(5pts\) 原因竟是忘了删注释,难受 题解 T2 这道题是一道启发式合并,没想出来,拿了个暴力分跑了 题解 T3 这道题就是一道数学期望,想出来就水得很, ...
- FPGA学习过程(二)
项目:数码管动态显示时间 首先建立一个计时一秒的模块,作为数码管显示的需要 module timer_s( input wire clk, input wire rst_n, output wire ...
- 【springboot】全局异常处理
转自: https://blog.csdn.net/cp026la/article/details/86495196 前言: 开发中异常的处理必不可少,常用的就是 throw 和 try catch, ...
- jQuery中的事件(八):on()、off()、bind()、unbind()、one()、hover()、hide()、show()、offset()等
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- python入门(需要C++基础)
title: python语法入门 author: Sun-Wind date: August 25, 2021 python语法入门 博主最近参加一项比赛,因为需要用到python,所以在这里记录自 ...
- LVS本地实验环境搭建
文中实验需要使用以下软件: CentOS的镜像 Virtual Box GNS3 0.实验前的准备工作 0.1.修改yum源 为了方便安装软件,我们设置yum源为公司yum源 1.直接复制公司机器上的 ...
- 第13篇-通过InterpreterCodelet存储机器指令片段
在TemplateInterpreterGenerator::generate_all()函数中生成了许多字节码指令以及一些虚拟机辅助执行的机器指令片段,例如生成空指针异常抛出入口的实现如下: { C ...
- TensorFlow-Slim 简介+Demo
github介绍:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/slim 基于slim实现的yolo- ...