//鸡兔同笼 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;
}
}
12. 编程:如果整数 A 的全部因子(包括 1,不包括 A 本身)之和等于 B,且整数 B 的全部因子包
括 1,不包括 B 本身)之和等于 A,则称整数 A\B 是一对亲密数;求 3000 以内的全部亲密数。 
 
public class Test12 {
public static void main(String[] args) {
for (int i = 1; i <= 3000; i++) {
   int b = sumAllFact(i); // i的因子和为b
   int a = sumAllFact(b); // b的因子和为a
// 分析:如果a == i,意味着a的因子和为b,
// b的因子和为a,满足亲密数的要求
// 同时,为了避免重复解,要求a < b
if (a < b && a == i) {
  System.out.println(a + " " + b);
    }
   }
}
// 计算因子和的函数
public static int sumAllFact(int n) {
  int sum = 0;
for (int i = 1; i <= n / 2; i++) {
   if (n % i == 0)
   sum += i;
   }
   return sum;
  }
}

在国际象棋的棋盘上, 放置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 小算法的更多相关文章

  1. 第一章 大体知道java语法1----------能写java小算法

    很多人开始学习java时,都是抱着诸如<Thinking in java>.<疯狂java>等书籍,从前到后慢慢翻看,不管其内容重要与否,也不关心自己以后能否使用到.我的建议是 ...

  2. 献上两个java小算法

    直接上代码: /** * Name: 求数组中元素重复次数对多的数和重复次数 * Description: * 数组中的元素可能会重复,这个方法可以找出重复次数最多的数,同时可以返回重复了多少次. * ...

  3. java小算法—大衍数列

    题目:    中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理. 它的前几项是:0.2.4.8.12.18.24.32.40.50 ... 其规律是:对偶数项,是序号平 ...

  4. Java排序算法之直接选择排序

    Java排序算法之直接选择排序 基本过程:假设一序列为R[0]~R[n-1],第一次用R[0]和R[1]~R[n-1]相比较,若小于R[0],则交换至R[0]位置上.第二次从R[1]~R[n-1]中选 ...

  5. Java与算法之(13) - 二叉搜索树

    查找是指在一批记录中找出满足指定条件的某一记录的过程,例如在数组{ 8, 4, 12, 2, 6, 10, 14, 1, 3, 5, 7, 9, 11, 13, 15 }中查找数字15,实现代码很简单 ...

  6. java排序算法(十):桶式排序

    java排序算法(十):桶式排序 桶式排序不再是一种基于比较的排序方法,它是一种比较巧妙的排序方式,但这种排序方式需要待排序的序列满足以下两个特征: 待排序列所有的值处于一个可枚举的范围之类: 待排序 ...

  7. java排序算法(五):快速排序

    java排序算法(五):快速排序 快速排序是一个速度非常快的交换排序算法,它的基本思路很简单,从待排的数据序列中任取一个数据(如第一个数据)作为分界值,所有比它小的元素放到左边.所有比它大的元素放到右 ...

  8. java排序算法(四):冒泡排序

    java排序算法(四):冒泡排序 冒泡排序是计算机的一种排序方法,它的时间复杂度是o(n^2),虽然不及堆排序.快速排序o(nlogn,底数为2).但是有两个优点 1.编程复杂度很低.很容易写出代码 ...

  9. java排序算法(三):堆排序

    java排序算法(三)堆排序 堆积排序(HeapSort)是指利用堆积树这种结构所设计的排序算法,可以利用数组的特点快速定位指定索引的元素.堆排序是不稳定的排序方法.辅助空间为O(1).最坏时间复杂度 ...

随机推荐

  1. HCNA Routing&Switching之PPPoE协议

    前文我们了解了广域网中的HDLC和PPP协议相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15174240.html:今天我们来聊一聊PPPoE协议相 ...

  2. uniapp封装小程序雷达图组件实现

    效果图: view <canvas id="radar-canvas" class="radar-canvas" type="2d"& ...

  3. Qt元对象和属性系统详解

    Qt 是一个用标准 C++ 编写的跨平台开发类库,它对标准 C++ 进行了扩展,引入了元对象系统.信号与槽.属性等特性,使应用程序的开发变得更高效. 本节将介绍 Qt 的这些核心特点,对于理解和编写高 ...

  4. 辗转相除 求最大公约数!or 最小公倍数

    求最大公约数和最小公倍数的经典算法--辗转相除法描述如下: 若要求a,b两数的最大公约数和最小公倍数,令a为a.b中较大数,b为较小数,算法进一步流程: while(b不为0) { temp=a%b: ...

  5. BeanUtils中的自动类型转换(二)

    javabean package entity; import java.util.Date; /** * 一个测试用: * student,javaBean * @author mzy * 一个标准 ...

  6. Struts2之国际化

    时间:2017-1-11 11:12 --国际化Struts2已经对国际化进行了封装,我们只需要根据其提供的API进行访问即可.要使用国际化的Action必须继承ActionSupport.1.什么是 ...

  7. 第13篇-通过InterpreterCodelet存储机器指令片段

    在TemplateInterpreterGenerator::generate_all()函数中生成了许多字节码指令以及一些虚拟机辅助执行的机器指令片段,例如生成空指针异常抛出入口的实现如下: { C ...

  8. vue3.0入门(五):vite构建vue项目

    使用vite构建项目步骤 安装node,cmd输入:node -v验证是否安装成功:一般node安装后会自动安装npm,cmd输入:npm -v验证是否安装成功 选择一个文件夹作为项目文件夹,搜索框输 ...

  9. Shell脚本逐行读取文本内容并拆分,根据条件筛选文件

    时间:2018-11-13 整理:byzqy 需求: 最近帮朋友写了一段脚本,他的需求是根据一份产品清单,去服务器上捞取对应产品编号的测试Log,数量大概有9000~10000条左右.文本内容大致如下 ...

  10. Mybatis笔记(1)

    一.Mabits简介 1.1 原始JDBC的分析 问题 ①数据库连接创建.释放频繁造成系统资源浪费从而影响系统性能 ②sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,s ...