java算法(一)
最近在看各种经典算法,自己写起来:
一、判断素数问题:
知识点:素数即为质数,一个数n若不是质数则一定在2-n/2之间内有因数。
package JingDian;
public class sushu {
public static void main(String[] args){
myMath shu = new myMath();
for(int i=101;i<=200;i++){
if(shu.isSuShu(i)==true){
System.out.println(i);
}
}
}
}
class myMath{
public boolean isSuShu(int x){
for(int i=2;i<=x/2;i++){
if(x%i==0)
return false;
}
return true;
}
}
二、取数的个位,十位,百位....问题:
知识点:
假设那么数为x,不知道是多少位的.
你可以使用下面的表达式:
个位:x%10
十位:x/10%10
百位:x/100%10
千位:x/1000%10
package JingDian;
public class shuixianshu {
public static void main(String[] args){
myMath2 shuixian = new myMath2();
for(int i=100;i<999;i++){
if(shuixian.shuixianshu(i)==true)
System.out.println(i);
}
}
}
class myMath2{
public boolean shuixianshu(int x){
int i=0,j=0,k=0;
//获取一个数的个位十位百位
i=x/100%10;
j=x/10%10;
k=x%10;
if(x==i*i*i+j*j*j+k*k*k){
return true;
}else{
return false;
}
}
}
三、分解质因数问题:
package JingDian;
public class fenjieshu {
public fenjieshu(){}
public void fenjie(int n){
for(int i=2;i<=n/2;i++){
if(n%i==0){
System.out.println(i+"");
//递归调用
fenjie(n/i);
}
}
System.out.println(n);
System.exit(0);
}
public static void main(String[] args){
String str="";
fenjieshu f=new fenjieshu();
str = javax.swing.JOptionPane.showInputDialog("请输入N的值(输入exit退出):");
int N = 0;
try{
N = Integer.parseInt(str);
}catch(NumberFormatException e){
e.printStackTrace();
}
System.out.println(N+"分解质因数:"+N+"=");
f.fenjie(N);
}
}
java算法(一)的更多相关文章
- JAVA算法系列 冒泡排序
java算法系列之排序 手写冒泡 冒泡算是最基础的一个排序算法,简单的可以理解为,每一趟都拿i与i+1进行比较,两个for循环,时间复杂度为 O(n^2),同时本例与选择排序进行了比较,选择排序又叫直 ...
- JAVA算法系列 快速排序
java算法系列之排序 手写快排 首先说一下什么是快排,比冒泡效率要高,快排的基本思路是首先找到一个基准元素,比如数组中最左边的那个位置,作为基准元素key,之后在最左边和最右边设立两个哨兵,i 和 ...
- java算法 蓝桥杯 乘法运算
问题描述 编制一个乘法运算的程序. 从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出. 输入格式 输入只有一行,是两个用空格隔开的数字,均在1~99之间(含1和99). 输出格式 输出为4行 ...
- java算法 蓝桥杯 扶老奶奶街
一共有5个红领巾,编号分别为A.B.C.D.E,老奶奶被他们其中一个扶过了马路. 五个红领巾各自说话: A :我和E都没有扶老奶奶 B :老奶奶是被C和E其中一个扶过大街的 C :老奶奶是被我和D其中 ...
- java算法 蓝桥杯 高精度加法
问题描述 在C/C++语言中,整型所能表示的范围一般为-231到231(大约21亿),即使long long型,一般也只能表示到-263到263.要想计算更加规模的数,就要用软件来扩展了,比如用数组或 ...
- java算法 蓝桥杯 格子位置
问题描述 输入三个自然数N,i,j (1<=i<=N,1<=j<=N),输出在一个N*N格的棋盘中,与格子(i,j)同行.同列.同一对角线的所有格子的位置. 输入格式 输入共三 ...
- java算法----排序----(6)希尔排序(最小增量排序)
package log; public class Test4 { /** * java算法---希尔排序(最小增量排序) * * @param args */ public static void ...
- java算法----排序----(5)归并排序
package log; import java.util.Arrays; public class Test4 { /** * java算法---归并排序 * * @param args */ pu ...
- java算法----排序----(4)快速排序
package log; public class Test4 { /** * java算法---快速排序 * * @param args */ public static void main(Str ...
- java算法----排序----(3)冒泡排序
package log; public class Test4 { /** * java算法---冒泡排序 * * @param args */ public static void main(Str ...
随机推荐
- maven下读取资源文件的问题(转)
原文链接:http://shenchao.me/2016/04/20/maven%E4%B8%8B%E8%AF%BB%E5%8F%96%E8%B5%84%E6%BA%90%E6%96%87%E4%BB ...
- 下拉框数据的动态选择,类似级联ajax刷新数据
简单的两个下拉列表,第二个中的数据与第一个下拉框相关: --------------------var selected = $(this).children('option:selected').v ...
- 二 Java利用等待/通知机制实现一个线程池
接着上一篇博客的 一Java线程的等待/通知模型 ,没有看过的建议先看一下.下面我们用等待通知机制来实现一个线程池 线程的任务就以打印一行文本来模拟耗时的任务.主要代码如下: 1 定义一个任务的接口 ...
- c++ 课堂作业(1)
一.题目 Create a program that asks for the radius of a circle and prints the area of that circle, using ...
- C# 基础(8)--网络编程
套接字,客户端连接服务器,作为进程通讯机制,是基于描述IP地址和端口,是一个通讯链的句柄,其实质就是两个程序通讯用的. 非常类似于电话插座.双方通话的过程,是一方向电话机发出信号和对方从电话机接受信号 ...
- Ubuntu MYSQL和Windows MYSQL (非C盘安装)
1.Ubuntu 默认安装 Mysql 5.6版本以上: 1.查看系统是否安装mysql 数据库: sudo netstat -tap | grep mysql 如果安装了,就查看一下版本命令: my ...
- html 页面内锚点定位及跳转方法总结
第一种方法,也是最简单的方法是锚点用<a>标签,在href属性中写入DIV的id.如下: <!DOCTYPE html><html><head> < ...
- MySQL中GROUP_CONCAT中排序
SELECT concat('',group_concat(option_name )) as option_name,select_id FROM zuyi_t_search ...
- Kinect2 随记
2016.03.30 calibration工作: 地板砖1.24m一格,大概走到2.5m时5*7的pattern开始无法检测到. 20种板上位姿*20种黑板位姿=400幅图像. 距离越远,水平角能检 ...
- 记录Python学习中的几个小问题
记录Python学习中的几个小问题,和C#\JAVA的习惯都不太一样. 1.Django模板中比较两个值是否相等 错误的做法 <option value="{{group.id}}&q ...