黑马程序员技术交流社区
标题:
Java经典算法案例有哪些?
[打印本页]
作者:
18618120018
时间:
2014-7-23 23:44
标题:
Java经典算法案例有哪些?
public
class
exp2{
public
static
void
main(String args[]){
int
i=0;
math mymath =
new
math();
for
(i=100;i<=999;i++)
if
(mymath.shuixianhua(i)==
true
)
System.
out
.println(i);
}
}
class
math
{
public
int
f(
int
x)
{
if
(x==1 || x==2)
return
1;
else
return
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
;
}
public
boolean
shuixianhua(
int
x)
{
int
i=0,j=0,k=0;
i=x / 100;
j=(x % 100) /10;
k=x % 10;
if
(x==i*i*i+j*j*j+k*k*k)
return
true
;
else
return
false
;
}
}
【程序
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);
}
}
【程序
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);
}
}
作者:
liuniansis
时间:
2014-7-24 15:39
额。哥们。。你这代码。。好错综复杂,而且你说的算法,你想要什么算法?
作者:
HPU--spring87
时间:
2014-7-25 22:12
这代码,,,,,,,,,眼花缭乱,撤。。。
作者:
yqj
时间:
2014-7-27 13:44
着代码,看晕了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2