Java循环基础练习题(含答案)
程序员文章站
2022-05-18 10:48:38
...
Java循环基础练习题(含答案)
11. 打印出100以内的质数,一行显示5个,(质数是只能被1跟自身整除的数,1不是质数)
答案
public static void main(String[] args) {
int n = 0;
int j = 2;
for (int i = 2; i <= 100 ; i++) {
boolean p = true;
int a = i;
for (j = 2; j < i; j++) {
int b = j;
if (a%b == 0) {
p = false;
break;
}
}
if (p) {
System.out.print(j + " ");
n++;
if (n%5 == 0) {
System.out.println();//打印第五个数时进行换行操作
}
}
}
}
运行结果
12. 某城市出租车计费问题:
1.每日06:00-21:00,起步价6元,当日22:00-次日05:00,起步价7元。0~23
2.起步价包含2公里,超出部分按照每公里1.5元收费。
3.每次乘车加收1元的燃油附加税。
输入打车的时间和距离,计算本次打车的费用。
答案
public static void main(String[] args) {
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("请输入乘车时间:");
String t1 = sc.nextLine();
int t;
if(t1.equals("end")){
System.out.println("退出程序");//若输入end,则退出程序
break;
}else {
t = Integer.parseInt(t1);
if (t>=6&&t<=21) {
System.out.println("请输入乘车距离:");
int a = sc.nextInt();
//因为每次乘车都有一元燃油附加税,所以在起步价的基础上加一
System.out.println("费用为:" + (7+(a-2)*1.5));
}else if (t>=22&&t<=24) {
System.out.println("请输入乘车距离:");
int b = sc.nextInt();
System.out.println("费用为:" + (8+(b-2)*1.5));
}else if (t>=0&&t<=5) {
System.out.println("请输入乘车距离:");
int c = sc.nextInt();
System.out.println("费用为:" + (8+(c-2)*1.5));
}else {
System.out.println("输入的时间非法,请重新输入");//输入的数字不在范围内时,输出非法
}
}
}
}
此代码在原题的基础上进行优化,加入一个循环,可持续打印乘车费用,当输入end时结束程序
运行结果
13. 有一只猴子摘了一堆桃子,每天吃掉一半桃子还不过瘾再多吃一个,吃到第十天的时候发现还剩下一个桃子,问猴子第一天一共摘了多少个桃子?
解题思路:
第10天:桃子数是:1
第9天:桃子数是:(1+1)*2=4
第8天:桃子数是:(4+1)*2=10
…
总结:前一天的桃子数=(后一天的桃子数+1)*2。
答案
public static void main(String[] args) {
int n = 1;
for (int i = 9; i >= 1 ; i--) {
n = 2*(n+1);
}
System.out.println("摘的桃子总数为:" + n );
}
运行结果
14. 使用for循环实现:根据用户输入的正整数n,求n!,即n!=n*(n-1)(n-2)…*1。
答案
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数:");
int n = sc.nextInt();
for (int i = n; i >= 1; i--) {
if (i>1) {
n = n * (i-1);
}else {
n = n * 1;
}
}
System.out.println(n);
}
运行结果
15. 使用循环打印以下圣诞树:(选做)
*
***
*****
*******
*********
***********
要求输入树的高度,打印圣诞树。
解题思路:
1、双层循环
2、高度:h
3、当前行:n
4、空格数:当前行h-n
5、星星数:2n-1
答案
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入圣诞树的高度:");
int level = sc.nextInt();
int spaceNum = level-1;
for(int i=1;i<=level;i++){
spaceNum--;//空格数
for(int g=0;g<=spaceNum;g++){
System.out.print(" ");
}
for(int j=1;j<=(i*2-1);j++){
System.out.print("*");
}
System.out.println();
}
}
运行结果
16. (百元钱买百只鸡问题)一只公鸡5元钱,一只母鸡3元钱,三只小鸡1元钱。要求100元买100只鸡,请给出所有可行的结果?
public static void main(String[] args) {
for (int cock = 1; cock <= 20; cock++) {
for (int hen = 1; hen < 34; hen++) {
for (int chick = 1; chick <= 100; chick++) {
if ((cock*5+hen*3+chick/3*1)==100&&(cock+hen+chick==100)) {
System.out.println(cock + " " + hen + " " + chick + " " );
}
}
}
}
}
运行结果
17. 所谓回文数是指正着数和倒着数一样大,比如1001,5005,8228,9999。请打印出1000-9999之间所有的回文数
答案
public static void main(String[] args) {
int count = 0;
for (int i = 1000; i < 10000; i++) {
int n = i;
int a = n%10;//取出个位数字赋值给a
int b = (n-a)/10%10;//取出十位数字赋值给b
int c = n/100%10;//取出百位数字赋值给c
int d = n/1000;//取出千位数字赋值给d
if (a == d && b == c) {
System.out.print(n + " " );
count++;
if (count%5==0) {
System.out.println();//每输出五个数字就换行
}
}
}
}
运行结果
完
上一篇: 消息队列
下一篇: 如何在防火墙添加例外端口
推荐阅读
-
Java基础_循环嵌套_打印乘法口诀、菱形,各种图形,计算二元一次和三元一次方程组_7
-
Java循环和数组练习题:打印素数升级版
-
java基础(18):集合、Iterator迭代器、增强for循环、泛型
-
java基础第十二篇之集合、增强for循环、迭代器和泛型
-
Java基础----循环语句(for,while,do...while)和跳出语句(break,continue)
-
06Java基础---嵌套for循环 break和continue while do-while
-
Java基础-分支结构&循环结构&循环控制语句&二重循环
-
Java语言基础(for语句循环嵌套)
-
Java基础语法--循环结构
-
Java程序设计基础笔记 • 【第5章 循环结构】