Java循环控制
来源:互联网 发布:qt 连接mysql 编辑:程序博客网 时间:2024/05/19 13:09
Key Point
for 循环的使用
while循环
do...while 循环 break 和 continue
练习
1. (for 循环)计算 1+2+3+...+100 的和
public class TestFor1 {public static void main(String[] args) { int sum=0; for(int i=1;i<=100;i++){ sum=sum+i; } System.out.println(sum);}}
2. (for 循环)计算 1+3+5+...+99 的和
public class Test02 {public static void main(String[] args) {int sum=0;for(int num=1;num<=100;num++){if(num%2!=0){ sum=num+sum; }}System.out.println (sum); //2500 }}
3. (while/do…while 循环)把 1、2 两题用 while 循环或 do...while 循环改写
public class TestWhile1 {public static void main(String[] args) { int sum=0; int i=1; while(i<=100){ sum=sum+i; i++; } System.out.println(sum);}}public class Test3 {public static void main(String[] args) {int sum=0;int num=1;while(num<=100){if(num%2!=0){ sum=num+sum; } num++; } System.out.println (sum); //2500 }}public class Test03 {public static void main(String[] args) {int sum=0;int num=1;do{if(num%2!=0){ sum=num+sum; } num++; } while(num<=100);System.out.println (sum); //2500 }}
4. (for 循环)读入一个小于10 的整数 n,输出它的阶乘 n!
import java.util.*;public class Test4 {public static void main(String[] args) {System.out.println("请输入一个小于10的整数:"); Scanner sc = new Scanner(System.in); int n = sc.nextInt();int sum=1; for(int i=1;i<=n;i++){sum=sum*i;}System.out.println ("一个10以内数的阶乘:"+sum);}}
5. (for 循环)求 100以内所有能被 3 整除但不能被 5 整除的数字的和。
//例题5:public class Test5 {public static void main(String[] args) {int sum=0;for(int num=1;num<=100;num++){//if(num%2!=0){if(num%3==0&&num%5!=0){ sum=num+sum; }}System.out.println (sum); //1368 }}
6. (for 循环)*“百钱买百鸡”是我国古代的著名数学题。题目这样描述:3 文钱可以买 1 只公鸡,2 文钱可以买一只母鸡,1 文钱可以买 3 只小鸡。用 100 文钱买 100只鸡,那么各有公鸡、母鸡、小鸡多少只?
public class Test6 {public static void main(String[] args) {int i=0;for(int a=1;a<100/3;a++){ //100/3=33,公鸡小于33只; for(int b=1;b<100/2;b++ ){ // 100/2=50,母鸡少于50; if((100-3*a-2*b)*3 == (100-a-b)){ i++;System.out.println("第"+i+"方法:"+a+"只公鸡"+b+"只母鸡"+(100-a-b)+"只雏鸡"); System.out.println();}} } }}
7. (for 循环)*搬砖问题:36 块砖,36 人搬,男搬 4,女搬 3,两个小孩抬 1 砖,要求一次全搬完,问男、女和小孩各若干?
public class Test7 {public static void main(String[] args) {int s=0;for( int x=0;x<=9;x++) { for( int y=0;y<=12;y++){ for( int z=0;z<=36;z++) { if(z%2==0 && (x+y+z)==36 && (x*4+y*3+z/2)==36) { s++; System.out.println("第"+s+"种方法: "+x+"男"+y+"女"+z+"小孩子"); } } } }}}//第1种方法: 3男3女30小孩子
8. (for 循环)*编程找出四位整数 abcd 中满足下述关系的数。
(ab+cd)(ab+cd)=abcd
public class Test8 {public static void main(String[] args) {for(int i=1000;i<10000;i++){int ab=i/100;int cd=i%100;if((ab+cd)*(ab+cd)==(ab*100+cd)){System.out.println("四位数是"+i);}}}}//2025//3025//9801
9. (循环)*读入一个整数 n,输出如下图形
n = 4
*
***
*****
******
思路:读入的整数 n,就是外层循环的循环次数。
对于每一行,要做的事情:1. 输出若干个空格;2. 输出若干个星;3. 换行。提示:输出不换行,用System.out.print()
import java.util.*; class TestFor9{public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println("打印几行:");int n = sc.nextInt();for(int i=1;i<=n;i++){ //打印列 for(int k=1;k<=n-i;k++){ System.out.print(" "); } //打印每行的空格 for(int j=1;j<=2*i-1;j++){ System.out.print("*"); } //打印每行的*System.out.println();}}}
10. (循环)*输出 99 乘法表
public class For10 {/*需求: 在控制台上打印一个正立的直角三角形 。*/public static void main(String[] args) {for(int i = 1 ; i< 9 ; i++){for(int j = 1 ; j<=i ; j++){ //控制列数 System.out.print(i+"*"+j+"="+i*j+"\t ");}System.out.println();}}}
11. (循环)**求水仙花数。所谓水仙花数,是指一个三位数 abc,如果满足 a3+b3+c3=abc,则 abc 是水仙花数。
//例题public class Test11 {public static void main(String[] args) { int z=0;for(int i=1;i<=9;i++){ for(int n=0;n<=9;n++){ for(int y=0;y<=9;y++){ int s=(i*100)+(n*10)+y; int b=(i*i*i+n*n*n+y*y*y); if(b==s) { z++; System.out.println("第"+z+"种方法:"+s); } } } }}}
12. (循环)**输入一个整数,计算它各位上数字的和。(注意:是任意位的整数)
//例题public class Test12 {public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入一个整数:"); int a = sc.nextInt(); int sum=0; for(int i=0;a>0;i++){ sum+=a%10; a/=10; }System.out.println("sum=:"+sum);}}
13. (循环)**输入一整数 A,判断它是否质数。
提示 1:若从 2 到 A 的平方根的范围内,没有一个数能整除 A,则 A 是质数。提示 2:在 java 中计算 n 的平方根可以使用 Math.sqrt(n)
//例题import java.util.*;public class Example13 {public static void main(String args[]){Scanner sc=new Scanner(System.in);System.out.println("请输入一个数:");int a=sc.nextInt();if(a<2){System.out.println("a是一个质数");}//判断该数最小公因子 for(int i=2;Math.sqrt(a)>=i;i++) {if(a%i==0){System.out.println("该数不是质数");} } System.out.println("该数是质数");}}
14.
(循环)**如果一个数等于其所有因子之和,我们就称这个数为"完数",例如 6 的因子为
1,2,3 6=1+2+36 就是一个完数.请编程打印出 1000 以内所有的完数
//例题14:求1000内的完数public class Test14 {public static void main(String args[]){//int sum=0;for(int i=2;i<=1000;i++){int sum=0; for(int j=1;j<i;j++){ if(i%j==0){ sum+=j; }} if(sum==i){ System.out.println(+i); // } }}}}//4966 28
中国古代数学家研究出了计算圆周率最简单的办法:
PI=4/1-4/3+4/5-4/7+4/9-4/11+4/13-4/15+4/17......
这个算式的结果会无限接近于圆周率的值, 我国古代数学家祖冲之计算出, 圆周率在 3.1415926和 3.1415927 之间,请编程计算,要想得到这样的结果,他要经过多少次加减法运算?
public class Test15{public static void main(String[] args){double PI =0;int a=0;int b=0;double d =1.0;while(PI<3.1415926||PI>3.1415927){if((int)d%2!=0){PI =PI+ 4.0/(2*d-1);}else{PI =PI- 4.0/(2*d-1);b++;}d=d+1;a++;}System.out.println("运算的总次数:"+a);System.out.println("减法的总次数:"+b);}}
16. (循环)**已知:faibonacci(费波那契)数列的前几个数分别为 0,1,1,2,3,5,……。从第 3 项开始,每一项都等于前两项的和。
//例题16:数:0,1,1,2,3,5.......import java.util.Scanner;public class Test16 {public static void main(String[] args) {Scanner sc = new Scanner (System.in);System.out.print("请输入一个整数:"); int n=sc.nextInt(); int sum=0; int a=0; int b=1; for(int i=1;i<=n;i++) { if(i==1){ sum=0; }else if(i==2){ sum=1; }else{ sum=a+b; a=b; b=sum; } System.out.println(sum);} }}
17. (循环,操作符)**一个 int 类型的整数由 32 个二进制位组成,每个二进制位的值要么为 0 要么为 1。要求读入一个 int 类型的整数 n,计算它的 32 个二进制位中总共有多少位为
1?
import java.util.Scanner;public class Test171 {public static void main(String args[]){Scanner sc = new Scanner (System.in);System.out.print("请输入一个二进制数:"); int k=0;int n=sc.nextInt();for(int i=0;i<32;i++){int t=n>>i; if((t & 1)==1){ k++; }}System.out.println(k);}}
18. (循环)***打渔还是晒网
中国有句老话叫“三天打渔,两天晒网”。假设有一个人从 2000 年 1 月 1 日开始“三天打渔两天晒网”,读入三个整数,分别表示年份、月份、日期,问这三个整数所表示的那天这个人在打渔还是在晒网?
//例题18:打渔晒网import java.util.Scanner;public class Test18 {private static Scanner sc;public static void main(String args[]){ int sum=0;sc = new Scanner (System.in);System.out.print("请输入一个年份:"); int y=sc.nextInt(); System.out.print("请输入一个月份:"); int m=sc.nextInt(); System.out.print("请输入一个日期:"); int d=sc.nextInt(); for(int i=2000;i<y;i++){ sum=sum+365; if(y%4==0&&y%100!=0 ||y%400==0&&y%100==0){ sum++; } for(int j=0;j<m-1;j++){ switch(j){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: sum+=31; break; case 4: case 6: case 9: case 11: sum+=30; break; default: sum+=28; } } } sum=sum+d; if(sum%5==1||sum%5==2||sum%5==3){ System.out.println("这天打渔"); }else{ System.out.println("这天晒网"); } } }
- Java-控制循环结构
- JAVA-循环控制
- java循环控制语句
- Java循环控制
- java循环结构控制
- Java程序逻辑控制,Java循环
- java控制循环结构day_5
- Java循环结构的控制
- java基础--控制外层循环
- JAVA流程控制 循环结构
- java-的控制循环部分
- JAVA基础_循环控制
- java循环控制以及三种循环控制符
- java循环控制结构的理解
- JAVA循环结合标签使用,控制跳转
- Java初学(流程控制and循环)
- Java GUI 使用确认对话框控制循环
- Java学习笔记(四)循环控制
- C#设计模式(十)观察者模式(Observer Pattern)
- c++的编译环境
- 集合和泛型
- Linux下创建用于并指定该用户的主目录和相关权限
- 用Bootstrap栅格系统表单
- Java循环控制
- JVM笔记(一)
- HDU 4453 Looploop (splay tree)
- EasyDSS流媒体解决方案之CDN内容分发网络
- Gazebo学习笔记--第一篇
- 【PAT】【Advanced Level】1051. Pop Sequence (25)
- 内存溢出之Tomcat内存配置
- SSM框架pom文件
- 在Ubuntu16.04 LTS下安装mysql,并设置远程连接