JAVA算法100例_全源码
java经典程序100例

2,给定一个百分制的分数,输出相应的等级。
90 分以上
A级
80~89
B级
70~79
C级
60~69
D级
60 分以下
E级
import java.util.Scanner; class Mark{
public static void main(String[] args){ System.out.println("请输入一个分数"); //定义输入的分数为“mark”,且分数会有小数 double mark; Scanner scanner = new Scanner(System.in); mark = scanner.nextDouble();
12、输入一个数据 n,计算斐波那契数列(Fibonacci)的第 n 个值 1 1 2 3 5 8 13 21 34 规律:一个数等于前两个数之和
//计算斐波那契数列(Fibonacci)的第 n 个值 public class Fibonacci{
public static void main(String args[]){ int n = Integer.parseInt(args[0]); int n1 = 1;//第一个数 int n2 = 1;//第二个数 int sum = 0;//和 if(n<=0){ System.out.println("参数错误!"); return;
3,编写程序求 1+3+5+7+……+99 的和值。
class he{ public static void main(String[] args){ int number = 1; //初始值 1,以后再+2 递增上去 int sum = 0; for ( ; number <100; number+=2 ){ sum += number; } System.out.println("1+3+5+7+……+99= " +sum); }
java经典程序100例

11、计算圆周率 PI=4-4/3+4/5-4/7....... 打印出第一个大于 3.1415 小于 3.1416 的值
class Pi { public static void main(String[] args){ double pi =0; //定义初始值 double fenZi = 4; //分子为 4 double fenMu = 1; //第一个 4,可看作分母为 1 的分式,以后的分母每次递增 2 for (int i = 0; i < 1000000000; i++){ //运行老久,减少循环次数会快很多,只是精确
int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if (year<0||year>3000){
System.out.println("年份有误,程序退出!"); System.exit(0); } if ((year%4==0)&&(year%100!=0)||(year%400==0)) System.out.println(year+" is bissextile"); else System.out.println(year+" is not bissextile "); } }
12、输入一个数据 n,计算斐波那契数列(Fibonacci)的第 n 个值 1 1 2 3 5 8 13 21 34 规律:一个数等于前两个数之和
//计算斐波那契数列(Fibonacci)的第 n 个值 public class Fibonacci{
javadct_DCT(离散余弦变换)算法原理和源码

javadct_DCT(离散余弦变换)算法原理和源码离散余弦变换(Discrete Cosine Transform,简称DCT)是一种常用的信号处理技术,广泛应用于图像和音频压缩领域。
DCT将输入的离散信号转换为一组系数,这些系数代表了信号的频域特征。
在压缩领域中,DCT可将信号从时域转换为频域,通过舍弃一些高频系数实现信号的压缩。
DCT算法的原理基于傅里叶变换(Fourier Transform)的思想,将时域信号转换为频域信号。
然而,与傅里叶变换相比,DCT更适合处理实数信号,因为它只使用实数运算,而不需要复数运算。
DCT算法的一般步骤如下:1.将输入的离散信号分为若干个块,每个块包含N个采样点。
2.对每个块进行预处理,例如减去均值。
3.对每个块进行DCT变换。
4.根据需要舍弃一些高频系数。
5.对经过舍弃的系数进行逆DCT变换,恢复原始信号。
下面是一个简单的离散余弦变换的Python实现:```pythonimport numpy as npdef dct_transform(signal):N = len(signal)dct_coef = np.zeros(N)for k in range(N):sum = 0for n in range(N):sum += signal[n] * np.cos((np.pi/N)*(n+0.5)*k)dct_coef[k] = sumreturn dct_coefdef idct_transform(dct_coef):N = len(dct_coef)signal = np.zeros(N)for n in range(N):sum = 0for k in range(N):sum += dct_coef[k] * np.cos((np.pi/N)*(n+0.5)*k)signal[n] = sum / Nreturn signal```以上是一个简单的DCT变换和逆变换的实现,其中`dct_transform`函数接受输入信号并返回DCT系数,`idct_transform`函数接受DCT系数并返回恢复的原始信号。
java基础代码大全

/*1. 打印:--------------------------------------------------2. 求两个浮点数之商。
3. 对一个数四舍五入取整。
4. 判断一个数是否为奇数5. 求一个数的绝对值。
6. 求两个数的最大值。
7. 求三个数的最大值。
8. 求1-n之和。
9. 求1-n中的奇数之和。
10. 打印自2012年起,n年内的所有闰年。
11. 打印n行星号组成的等腰三角形。
12. 求两个正整数的最小公倍数。
13. 判断一个数是否为质数。
14. 求两个正整数的最大公约数。
15. 求一个正整数n以内的质数。
16. 求一个正整数n以内的质数。
17. 分别利用递推算法和递归算法求n! 。
*/class A{static void f(){System.out.println("----------------------");//1.打印:-----------}static double quzheng(double a){int b;System.out.println((b=(int)(a+0.5)));//2.求两个浮点数之商。
return(b);}static double qiushang(double a,double b){ //3.对一个数四舍五入取整System.out.println((a/b));return(a/b);}static boolean odd(int c){ //4.判断一个数是否为奇数if(c%2==0){return(false);}else{return(true);}}static int juedui(int d){ //5.求一个数的绝对值。
if(d<0){d=0-d;System.out.println(d);else{d=d;System.out.println(d);}return(d);}static int max(int e,int f){ //6.求两个数的最大值。
简单java程序编程例子

简单java程序编程例子
以下是 8 条关于简单 Java 程序编程例子的内容:
1. 嘿,你知道吗?打印出一句话就很简单呢!就像这样:`("Hello World!");` 想象一下,电脑屏幕上出现了你让它说的话,是不是很神奇呀?
2. 哇哦,计算两个数的和也不难呀!比如 int a = 5, int b = 10; 然后 int sum = a + b; 这就求出结果啦,就像我们生活中做加法一样轻松呢!
3. 诶呀,判断一个数是奇数还是偶数也挺有趣呢!用 if 语句就可以啦,比如 int num = 7; if (num % 2 == 0) {...} else {...},是不是很有意思呀?
4. 嘿,还可以通过循环来重复做一些事情哦!像 for 循环,比如说要打印 5 次“我爱Java”,for (int i = 0; i < 5; i++) { ("我爱 Java"); } 这不就实现啦,感觉好酷呀!
5. 哈,创建一个数组来存储多个值也不难哟!int[] array = {1, 2, 3, 4, 5}; 然后可以通过索引来访问每个元素,就像找到藏在里面的宝贝一样呢!
6. 哇噻,实现一个简单的猜数字游戏也超好玩呢!电脑心里想一个数字,你来猜,然后它告诉你大了还是小了,这就跟和朋友玩游戏一样刺激呀!
7. 呀,创建一个类和对象也很重要呢!比如定义一个学生类,然后创建一个学生对象来表示具体的一个学生,这就像是给每个学生都造了一个专属模型一样呢!
8. 嘿嘿,用 Java 来解决一些实际问题,那才叫厉害呢!比如计算购物车的总价,或者统计一篇文章里某个单词出现的次数,这多有成就感呀!
结论:Java 编程有很多有趣又实用的例子呢,只要你去尝试,就能发现其中的乐趣和魅力!。
java算法大全

java算法大全
Java算法大全可以包含许多不同的算法,包括排序算法、搜索算法、图算法等等。
下面是一些常见和常用的Java算法示例:
1. 排序算法:
- 冒泡排序
- 插入排序
- 选择排序
- 快速排序
- 归并排序
- 堆排序
2. 搜索算法:
- 二分查找
- 广度优先搜索(BFS)
- 深度优先搜索(DFS)
3. 图算法:
- 最短路径算法(如Dijkstra算法、Floyd-Warshall算法)
- 最小生成树算法(如Prim算法、Kruskal算法)
- 拓扑排序算法
4. 动态规划算法:
- 背包问题
- 最长上升子序列(LIS)问题
- 最长公共子序列(LCS)问题
5. 字符串算法:
- 字符串匹配(如暴力匹配、KMP算法、Boyer-Moore
算法)
- 字符串排序(如基数排序)
6. 数值算法:
- 求解线性方程组
- 求解方程的根
- 求解数值积分
以上只是一些常见的算法示例,Java算法的范围非常广泛,涉及到各种不同的问题和应用领域。
如果你有特定的算法
需求,可以提供更具体的问题描述,我可以为你提供更详
细的解答。
java编程100例

}
//for循环操作
for(int i=0;i<iEnd;i++)
{
System.out.println("这是for 第"+i+"次循环");
}
//while循环操作
}
}
[JAVA100例]004、矢量(Vector)对象的操作
public class operateVector
{
/*
*<br>方法说明:生成一个4*4的二维Vector,供使用。
*<br>输入参数:
*<br>输出变量:Vector
*<br>其它说明:
*/
public Vector buildVector(){
//演示是否是英文字符
boolean bIsStr = mA.isString("wer");
System.out.println("1:bIsStr="+bIsStr);
bIsStr = mA.isString("wer3");
System.out.println("2:bIsStr="+bIsStr);
for(int j=0;j<cStr.length;j++){
if(cTemp==cStr[j]){
bTemp = true;
break;
}
}
if(!bTemp) return false;
}
return 0;
JAVA算术题40道

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... publi c cla ss ex p2{publi c sta tic v oid m ain(S tring args[]){int i=0;fo r(i=1;i<=20;i++)Syste m.out.prin tln(f(i));}publi c sta tic i nt f(int x){if(x==1|| x==2)ret urn 1;e lseret urn f(x-1)+f(x-2);}}或publ ic cl ass e xp2{publ ic st aticvoidmain(Strin g arg s[]){in t i=0;m ath m ymath = ne w mat h();for(i=1;i<=20;i++)S ystem.out.print ln(my math.f(i));}}cl ass m ath{pub lic i nt f(int x){if(x==1|| x==2)ret urn 1;e lseret urn f(x-1)+f(x-2);}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
pub lic c lassexp2{pub lic s tatic void main(Stri ng ar gs[]){i nt i=0;mathmymat h = n ew ma th();fo r(i=2;i<=200;i++)if(m ymath.iszh ishu(i)==t rue)Sy stem.out.p rintl n(i);}}clas s mat h{publi c int f(in t x){if(x==1 || x==2)retur n 1;els eretur n f(x-1)+f(x-2);}publ ic bo olean iszh ishu(int x){for(inti=2;i<=x/2;i++)i f (x% 2==0 )re turnfalse;r eturn true;}}【程序3】题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JA V A经典算法40题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....public class exp2{public static void main(String args[]){int i=0;for(i=1;i<=20;i++)System.out.println(f(i));}public static int f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}}或public class exp2{public static void main(String args[]){int i=0;math mymath = new math();for(i=1;i<=20;i++)System.out.println(mymath.f(i));}}class math{public int f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
public class exp2{public static void main(String args[]){int i=0;math mymath = new math();for(i=2;i<=200;i++)if(mymath.iszhishu(i)==true)System.out.println(i);}}class math{public int f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}public boolean iszhishu(int x){for(int i=2;i<=x/2;i++)if (x % 2==0 )return false;return true;}}【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
public class Shuixianhua {public static void main(String[] args) {int i,a,b,c;System.out.println("水仙花数:");for(i=100;i<1000;i++){a=i/100;b=i%100/10;c=i%10;if(i==a*a*a+b*b*b+c*c*c)} System.out.print(i+",");}}【程序4】题目:将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
public class exp2{public exp2(){}public void fengjie(int n){for(int i=2;i<=n/2;i++){if(n%i==0){System.out.print(i+"*");fengjie(n/i);}}System.out.print(n);System.exit(0);///不能少这句,否则结果会出错}public static void main(String[] args){String str="";exp2 c=new exp2();str=javax.swing.JOptionPane.showInputDialog("请输入N的值(输入exit退出):");int N;N=0;try{N=Integer.parseInt(str);}catch(NumberFormatException e){e.printStackTrace();}System.out.print(N+"分解质因数:"+N+"=");c.fengjie(N);}}【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序分析:(a> b)?a:b这是条件运算符的基本例子。
import javax.swing.*;public class ex5 {public static void main(String[] args){String str="";str=JOptionPane.showInputDialog("请输入N的值(输入exit退出):");int N;N=0;try{N=Integer.parseInt(str);}catch(NumberFormatException e){e.printStackTrace();}str=(N>90?"A":(N>60?"B":"C"));System.out.println(str);}}import java.util.Scanner;public class Chengji {public static void main(String[] args) {System.out.println("请输入成绩:");Scanner scan = new Scanner(System.in);int N = scan.nextInt();if(N>100||N<0)System.out.println("输入数据有误;");else {String a="";a=N>=90?"A":(N<60?"C":"B");System.err.println("输入的成绩级别为:"+a);}}}【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
最大公约数:public class CommonDivisor{public static void main(String args[]){commonDivisor(24,32);}static int commonDivisor(int M, int N){if(N<0||M<0){System.out.println("ERROR!");return -1;if(N==0){System.out.println("the biggest common divisor is :"+M);return M;}return commonDivisor(N,M%N);}}最小公倍数和最大公约数:import java.util.Scanner;public class CandC{//下面的方法是求出最大公约数public static int gcd(int m, int n){while (true){if ((m = m % n) == 0)return n;if ((n = n % m) == 0)return m;}}public static void main(String args[]) throws Exception{//取得输入值//Scanner chin = new Scanner(System.in);//int a = chin.nextInt(), b = chin.nextInt();int a=23; int b=32;int c = gcd(a, b);System.out.println("最小公倍数:" + a * b / c + "\n最大公约数:" + c); }}【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\n '.import java.util.Scanner;public class ex7 {public static void main(String args[]){System.out.println("请输入字符串:");Scanner scan=new Scanner(System.in);String str=scan.next();String E1="[\u4e00-\u9fa5]";String E2="[a-zA-Z]";int countH=0;int countE=0;char[] arrChar=str.toCharArray();String[] arrStr=new String[arrChar.length];for (int i=0;i<arrChar.length ;i++ )arrStr[i]=String.valueOf(arrChar[i]);}for (String i: arrStr ){if (i.matches(E1)){countH++;}if (i.matches(E2)){countE++;}}System.out.println("汉字的个数"+countH);System.out.println("字母的个数"+countE);}}【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。