For循环控制训练
1. (for 循环)计算 1+2+3+...+100 的和 答:public class ForLoop{
public static void main(String[] args) { int sum=0;
for(int i=0;i<=100;i++){ sum+=i; }
System.out.println(sum); } }
2. (for 循环)计算 1+3+5+...+99 的和
答: public static void main(String[] args) {
int sum=0;
for(int i=0;i<=100;i++){ if(i%2==1){ sum+=i; } }
System.out.println(sum); } }
3. (while/do?while 循环)把 1、2 两题用 while 循环或 do...while 循环改写
答:方法1、public class OddLoop{ }
public static void main(String[] args) { int sum=0; int i=1;
while(i<=100){ if(i%2==1){ sum+=i; } i++; }
System.out.println(sum); }
方法2、public class OddLoop{
public static void main(String[] args) {
int sum=0; int i=1; do{
if(i%2==1){ sum+=i; } i++; }
while(i<=100);
System.out.println(sum); } }
4. (for 循环)读入一个小于 10 的整数 n,输出它的阶乘 n! 答:public class RideLoop{
public static void main(String[] args) { int n=5; if(n<10){
int sum=1;
for(int i=n;i>0;i--){ sum*=i; }
System.out.println(sum); }else{
System.out.println(\你输入的是无效数字\);
} } }
5. (for 循环)求 100 以内所有能被 3 整除但不能被 5 整除的数字的和。 答:public class ForLoop{ }
public static void main(String[] args) { long sum=0;
for(int i=1;i<=100;i++){ if(i%3==0&& i%5!=0){ sum+=i; } }
System.out.println(sum); }
6. (for 循环)*“百钱买百鸡”是我国古代的著名数学题。题目这样描述:3 文钱可以买 1
只公鸡,2 文钱可以买一只母鸡,1 文钱可以买 3 只小鸡。用 100 文钱买 100 只鸡,那么各
有公鸡、母鸡、小鸡多少只? 答:public class ChickTest{
public static void main(String[] args) { int a,b,c;
for(a=1;a<33;a++){ for(b=1;b<50;b++){
for(c=1;c<=(100-a-b);c++){ if(100==3*a+2*b+c/3){
System.out.println(\有\+a+\只公鸡\+b+\只母
鸡\+c+\只小鸡\);
} } } } } }
7. (for 循环)*搬砖问题:36 块砖,36 人搬,男搬 4,女搬 3,两个小孩抬 1 砖,要求一次
全搬完,问男、女和小孩各若干?
8. (for 循环)*编程找出四位整数 abcd 中满足下述关系的数。 (ab+cd)(ab+cd)=abcd
9. (循环)*读入一个整数 n,输出如下图形 n = 3 * *** ***** n = 4 F * *** *****
******* 思路:读入的整数 n,就是外层循环的循环次数。
对于每一行,要做的事情:1. 输出若干个空格;2. 输出若干个星;3. 换行。 提示:输出不换行,用 System.out.print()
10. (循环)*输出 99 乘法表
11. (循环)**求水仙花数。所谓水仙花数,是指一个三位数 abc,如果满足 a 3 +b3 +c3 =abc,
则 abc 是水仙花数。
12. (循环)**输入一个整数,计算它各位上数字的和。(注意:是任意位的整数)
13. (循环)**输入一整数 A,判断它是否质数。
提示 1:若从 2 到 A 的平方根的范围内,没有一个数能整除 A,则 A 是质数。 提示 2:在 java 中计算 n 的平方根可以使用 Math.sqrt(n) 14. (循环)**如果一个数等于其所有因子之和,我们就称这个数为\完数\例如 6 的因子为
1,2,3 6=1+2+3 6 就是一个完数.请编程打印出 1000 以内所有的完数
15. **计算圆周率
中国古代数学家研究出了计算圆周率最简单的办法: PI=4/1-4/3+4/5-4/7+4/9-4/11+4/13-4/15+4/17......
这个算式的结果会无限接近于圆周率的值,我国古代数学家祖冲之计算出,圆周率在
3.1415926 和 3.1415927 之间,请编程计算,要想得到这样的结果,他要经过多少次加减法运算?
16. (循环)**已知:faibonacci(费波那契)数列的前几个数分别为 0,1,1,2,3,5,??。
从第 3 项开始,每一项都等于前两项的和。 读入一个整数 n,编程求出此数列的前 n 项。 注意:这里的数列是从 0 开始的。
17. (循环,操作符)**一个 int 类型的整数由 32 个二进制位组成,每个二进制位的值要么 为 0 要么为 1。要求读入一个 int 类型的整数 n,计算它的 32 个二进制位中总共有多少位为 1?
18. (循环)***打渔还是晒网
中国有句老话叫“三天打渔,两天晒网”。假设有一个人从 2000 年 1 月 1 日开始“三天 打渔两天晒网”,读入三个整数,分别表示年份、月份、日期,问这三个整数所表示的那天
这个人在打渔还是在晒网?