【程序11】 题目:有1、
2
、
3
、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1
.程序分析:可填在百位、十位、个位的数字都是1、
2
、
3
、
4
。组成所有的排列后再去 掉不满足条件的排列。
public
class
Wanshu {
public
static
void
main(String[] args)
{
int
i
=
0
;
int
j
=
0
;
int
k
=
0
;
int
t
=
0
;
for
(i
=
1
;i
<=
4
;i
++
)
for
(j
=
1
;j
<=
4
;j
++
)
for
(k
=
1
;k
<=
4
;k
++
)
if
(i
!=
j
&&
j
!=
k
&&
i
!=
k)
{t
+=
1
;
System.out.println(i
*
100
+
j
*
10
+
k);
}
System.out.println (t);
}
}
【程序12】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10
%
;利润高于10万元,低于20万元时,低于10万元的部分按10
%
提成,高于10万元的部分,可可提成7.
5
%
;20万到40万之间时,高于20万元的部分,可提成5
%
;40万到60万之间时高于40万元的部分,可提成3
%
;60万到100万之间时,高于60万元的部分,可提成1.
5
%
,高于100万元时,超过100万元的部分按1
%
提成,从键盘输入当月利润I,求应发放奖金总数?
1
.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
import
java .util.
*
;
public
class
test {
public
static
void
main (String[]args){
double
sum;
//
声明要储存的变量应发的奖金
Scanner input
=
new
Scanner (System.in);
//
导入扫描器
System.out.print (
"
输入当月利润
"
);
double
lirun
=
input .nextDouble();
//
从控制台录入利润
if
(lirun
<=
100000
){
sum
=
lirun
*
0.1
;
}
else
if
(lirun
<=
200000
){
sum
=
10000
+
lirun
*
0.075
;
}
else
if
(lirun
<=
400000
){
sum
=
17500
+
lirun
*
0.05
;
}
else
if
(lirun
<=
600000
){
sum
=
lirun
*
0.03
;
}
else
if
(lirun
<=
1000000
){
sum
=
lirun
*
0.015
;
}
else
{
sum
=
lirun
*
0.01
;
}
System.out.println(
"
应发的奖金是
"
+
sum);
}
}
后面其他情况的代码可以由读者自行完善.
【程序13】
题目:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少?
1
.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:
public
class
test {
public
static
void
main (String[]args){
long
k
=
0
;
for
(k
=
1
;k
<=
100000l
;k
++
)
if
(Math.floor(Math.sqrt(k
+
100
))
==
Math.sqrt(k
+
100
)
&&
Math.floor(Math.sqrt(k
+
168
))
==
Math.sqrt(k
+
168
))
System.out.println(k);
}
}
【程序14】 题目:输入某年某月某日,判断这一天是这一年的第几天?
1
.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
import
java.util.
*
;
public
class
test {
public
static
void
main (String[]args){
int
day
=
0
;
int
month
=
0
;
int
year
=
0
;
int
sum
=
0
;
int
leap;
System.out.print(
"
请输入年,月,日\n
"
);
Scanner input
=
new
Scanner(System.in);
year
=
input.nextInt();
month
=
input.nextInt();
day
=
input.nextInt();
switch
(month)
/*
先计算某月以前月份的总天数
*/
{
case
1
:
sum
=
0
;
break
;
case
2
:
sum
=
31
;
break
;
case
3
:
sum
=
59
;
break
;
case
4
:
sum
=
90
;
break
;
case
5
:
sum
=
120
;
break
;
case
6
:
sum
=
151
;
break
;
case
7
:
sum
=
181
;
break
;
case
8
:
sum
=
212
;
break
;
case
9
:
sum
=
243
;
break
;
case
10
:
sum
=
273
;
break
;
case
11
:
sum
=
304
;
break
;
case
12
:
sum
=
334
;
break
;
default
:
System.out.println(
"
data error
"
);
break
;
}
sum
=
sum
+
day;
/*
再加上某天的天数
*/
if
(year
%
400
==
0
||
(year
%
4
==
0
&&
year
%
100
!=
0
))
/*
判断是不是闰年
*/
leap
=
1
;
else
leap
=
0
;
if
(leap
==
1
&&
month
>
2
)
/*
如果是闰年且月份大于2,总天数应该加一天
*/
sum
++
;
System.out.println(
"
It is the the day:
"
+
sum);
}
}
【程序15】 题目:输入三个整数x,y,z,请把这三个数由小到大输出。
1
.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x
>
y则将x与y的值进行交换,然后再用x与z进行比较,如果x
>
z则将x与z的值进行交换,这样能使x最小。
import
java.util.
*
;
public
class
test {
public
static
void
main (String[]args){
int
i
=
0
;
int
j
=
0
;
int
k
=
0
;
int
x
=
0
;
System.out.print(
"
请输入三个数\n
"
);
Scanner input
=
new
Scanner(System.in);
i
=
input.nextInt();
j
=
input.nextInt();
k
=
input.nextInt();
if
(i
>
j)
{
x
=
i;
i
=
j;
j
=
x;
}
if
(i
>
k)
{
x
=
i;
i
=
k;
k
=
x;
}
if
(j
>
k)
{
x
=
j;
j
=
k;
k
=
x;
}
System.out.println(i
+
"
,
"
+
j
+
"
,
"
+
k);
}
}
【程序16】 题目:输出9
*
9口诀。
1
.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
public
class
jiujiu {
public
static
void
main(String[] args)
{
int
i
=
0
;
int
j
=
0
;
for
(i
=
1
;i
<=
9
;i
++
)
{
for
(j
=
1
;j
<=
9
;j
++
)
System.out.print(i
+
"
*
"
+
j
+
"
=
"
+
i
*
j
+
"
\t
"
);
System.out.println();
}
}
}
不出现重复的乘积(下三角)
public
class
jiujiu {
public
static
void
main(String[] args)
{
int
i
=
0
;
int
j
=
0
;
for
(i
=
1
;i
<=
9
;i
++
)
{
for
(j
=
1
;j
<=
i;j
++
)
System.out.print(i
+
"
*
"
+
j
+
"
=
"
+
i
*
j
+
"
\t
"
);
System.out.println();
}
}
}
上三角
public
class
jiujiu {
public
static
void
main(String[] args)
{
int
i
=
0
;
int
j
=
0
;
for
(i
=
1
;i
<=
9
;i
++
)
{
for
(j
=
i;j
<=
9
;j
++
)
System.out.print(i
+
"
*
"
+
j
+
"
=
"
+
i
*
j
+
"
\t
"
);
System.out.println();
}
}
}
【程序17】 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
1
.程序分析:采取逆向思维的方法,从后往前推断。
public
class
猴子吃桃 {
static
int
total(
int
day){
if
(day
==
10
){
return
1
;
}
else
{
return
(total(day
+
1
)
+
1
)
*
2
;
}
}
public
static
void
main(String[] args)
{
System.out.println(total(
1
));
}
}
【程序18】 题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
1
.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
import
java.util.ArrayList;
public
class
pingpang {
String a,b,c;
public
static
void
main(String[] args) {
String[] op
=
{
"
x
"
,
"
y
"
,
"
z
"
};
ArrayList
<
pingpang
>
arrayList
=
new
ArrayList
<
pingpang
>
();
for
(
int
i
=
0
; i
<
3
; i
++
)
for
(
int
j
=
0
; j
<
3
; j
++
)
for
(
int
k
=
0
; k
<
3
; k
++
) {
pingpang a
=
new
pingpang(op[i],op[j],op[k]);
if
(
!
a.a.equals(a.b)
&&!
a.b.equals(a.c)
&&!
a.a.equals(
"
x
"
)
&&!
a.c.equals(
"
x
"
)
&&!
a.c.equals(
"
z
"
)){
arrayList.add(a);
}
}
for
(Object a:arrayList){
System.out.println(a);
}
}
public
pingpang(String a, String b, String c) {
super
();
this
.a
=
a;
this
.b
=
b;
this
.c
=
c;
}
@Override
public
String toString() {
//
TODO Auto-generated method stub
return
"
a的对手是
"
+
a
+
"
,
"
+
"
b的对手是
"
+
b
+
"
,
"
+
"
c的对手是
"
+
c
+
"
\n
"
;
}
}
【程序19】 题目:打印出如下图案(菱形)
*
***
******
********
******
***
*
1
.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。
三角形:
public
class
StartG {
public
static
void
main(String [] args)
{
int
i
=
0
;
int
j
=
0
;
for
(i
=
1
;i
<=
4
;i
++
)
{
for
(j
=
1
;j
<=
2
*
i
-
1
;j
++
)
System.out.print(
"
*
"
);
System.out.println(
""
);
}
for
(i
=
4
;i
>=
1
;i
--
)
{
for
(j
=
1
;j
<=
2
*
i
-
3
;j
++
)
System.out.print(
"
*
"
);
System.out.println(
""
);
}
}
}
菱形:
public
class
StartG {
public
static
void
main(String [] args)
{
int
i
=
0
;
int
j
=
0
;
for
(i
=
1
;i
<=
4
;i
++
)
{
for
(
int
k
=
1
; k
<=
4
-
i;k
++
)
System.out.print(
"
"
);
for
(j
=
1
;j
<=
2
*
i
-
1
;j
++
)
System.out.print(
"
*
"
);
System.out.println(
""
);
}
for
(i
=
4
;i
>=
1
;i
--
)
{
for
(
int
k
=
1
; k
<=
5
-
i;k
++
)
System.out.print(
"
"
);
for
(j
=
1
;j
<=
2
*
i
-
3
;j
++
)
System.out.print(
"
*
"
);
System.out.println(
""
);
}
}
}
【程序20】 题目:有一分数序列:
2
/
1
,
3
/
2
,
5
/
3
,
8
/
5
,
13
/
8
,
21
/
13
...求出这个数列的前20项之和。
1
.程序分析:请抓住分子与分母的变化规律。
public
class
test20 {
public
static
void
main(String[] args) {
float
fm
=
1f;
float
fz
=
1f;
float
temp;
float
sum
=
0f;
for
(
int
i
=
0
;i
<
20
;i
++
){
temp
=
fm;
fm
=
fz;
fz
=
fz
+
temp;
sum
+=
fz
/
fm;
//
System.out.println(sum);
}
System.out.println(sum);
}
}
分享到:
相关推荐
这是java编程经典例题
包含各基础章节的例子,是java入门与进阶的好资料。
经典例题50条里面有很多大家熟悉的经典例题 比如数字金字塔
java经典50例题,大学生复习的好帮手,对初学者有很大帮助
java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题java数据结构经典例题...
java,例题,经典
JAVA经典程序例题 JAVA经典程序例题
java中的经典例题 对初学着 和j2se培训很实用 涵盖了各个知识点
java蓝桥杯经典例题及详解,适合要做蓝桥杯比赛的同学,希望采纳java蓝桥杯经典例题及详解 java蓝桥杯经典例题及详解
java 例题java 例题java 例题java 例题java 例题java 例题
java经典例题2[文].pdf
可以了解用最简单的方法去解决最复杂的问题,看多了就能了解Java的精髓
太经典的Java笔试题,共勉。 1,下面程序的运行结果是 public class J_test { public static void main(String[] args) { int i = 0; while (true) { if(i++ > 10){ break; } //i++的考查,在右边时是先执行...
java经典例题值得一看哦,经典,据对经典, 但是没有答案,自己做了
从基础学起 最经典的JAVA例题 学JAVA语言人必看的例题
java经典例题解析,包含答案,分析,代码以及详细的注释,适合初学者快速学习以及了解java循环,嵌套,遍历控制输出等基础流程,并可以在此基础上代码复用,完成其他相关的程序设计,是初学者编程指导的不二选择。
java经典算法 例题 适合新手 有详细解析
多看例题,多悟多思。。。。。适合初学者 。。升华。。。。。。。。。。。。。。。。。。。。。。。。。。。。
用于一典型的JAVA例题