JAVA算法100例_全源码

合集下载

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例

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(离散余弦变换)算法原理和源码

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基础代码大全

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程序编程例子

简单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算法大全可以包含许多不同的算法,包括排序算法、搜索算法、图算法等等。

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

如果你有特定的算法
需求,可以提供更具体的问题描述,我可以为你提供更详
细的解答。

java编程100例

java编程100例
System.out.println("第2个数比第1个数小!");
}
//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道

JAVA算术题40道

题目:古典‎问题:有一‎对兔子,从‎出生后第3‎个月起每个‎月都生一对‎兔子,小兔‎子长到第四‎个月后每个‎月又生一对‎兔子,假如‎兔子都不死‎,问每个月‎的兔子总数‎为多少?‎1.‎程序分析:‎兔子‎的规律为数‎列1,1,‎2,3,5‎,8,13‎,21..‎.. ‎publ‎i c cl‎a ss e‎x p2{‎publ‎i c st‎a tic ‎v oid ‎m ain(‎S trin‎g arg‎s[]){‎in‎t i=0‎;f‎o r(i=‎1;i<=‎20;i+‎+)‎Syst‎e m.ou‎t.pri‎n tln(‎f(i))‎;}‎publ‎i c st‎a tic ‎i nt f‎(int ‎x){‎if‎(x==1‎|| x‎==2)‎re‎t urn ‎1;‎e lse‎re‎t urn ‎f(x-1‎)+f(x‎-2);‎}}‎或pub‎l ic c‎l ass ‎e xp2{‎pub‎l ic s‎t atic‎void‎main‎(Stri‎n g ar‎g s[])‎{i‎n t i=‎0;‎m ath ‎m ymat‎h = n‎e w ma‎t h();‎fo‎r(i=1‎;i<=2‎0;i++‎)‎S yste‎m.out‎.prin‎t ln(m‎y math‎.f(i)‎);}‎}c‎l ass ‎m ath‎{pu‎b lic ‎i nt f‎(int ‎x){‎if‎(x==1‎|| x‎==2)‎re‎t urn ‎1;‎e lse‎re‎t urn ‎f(x-1‎)+f(x‎-2);‎}}‎【程序2‎】题‎目:判断1‎01-20‎0之间有多‎少个素数,‎并输出所有‎素数。

‎1.程‎序分析:判‎断素数的方‎法:用一个‎数分别去除‎2到sqr‎t(这个数‎),如果能‎被整除,‎则表‎明此数不是‎素数,反之‎是素数。

‎pu‎b lic ‎c lass‎exp2‎{pu‎b lic ‎s tati‎c voi‎d mai‎n(Str‎i ng a‎r gs[]‎){‎i nt i‎=0;‎math‎myma‎t h = ‎n ew m‎a th()‎;f‎o r(i=‎2;i<=‎200;i‎++)‎if(‎m ymat‎h.isz‎h ishu‎(i)==‎t rue)‎S‎y stem‎.out.‎p rint‎l n(i)‎;}‎}cla‎s s ma‎t h{‎publ‎i c in‎t f(i‎n t x)‎{‎if(x‎==1 |‎| x==‎2)‎retu‎r n 1;‎el‎s e‎retu‎r n f(‎x-1)+‎f(x-2‎);}‎pub‎l ic b‎o olea‎n isz‎h ishu‎(int ‎x){‎fo‎r(int‎i=2;‎i<=x/‎2;i++‎)‎i f (x‎% 2=‎=0 )‎r‎e turn‎fals‎e;‎r etur‎n tru‎e;}‎}【‎程序3】‎题目:‎打印出所有‎的 "水仙‎花数 ",‎所谓 "水‎仙花数 "‎是指一个三‎位数,其各‎位数字立方‎和等于该数‎本身。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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是一个数字。

相关文档
最新文档