java算法(一)
2014-04-12 20:12 大额_skylar 阅读(318) 评论(0) 编辑 收藏 举报最近在看各种经典算法,自己写起来:
一、判断素数问题:
知识点:素数即为质数,一个数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); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?