赞
踩
1.(for 循环)计算1+2+3+…+100 的和
package com.fxm.day03.test;
public class day03test1{
public static void main(String[] args){
int sum = 0;
for(int i = 1; i < 101; i++){
sum += i;
}
System.out.println("1到100的和:"+sum);
}
}
2.(for 循环)计算1+3+5+…+99 的和。
package com.fxm.day03.test;
public class day03test2{
public static void main(String[] args){
int sum = 0;
for(int i = 1; i < 100; i += 2){
sum += i;
}
System.out.println("1到100的奇数和为:"+sum);
}
}
3.(while/do while循环)把1、2 两题用while 循环或do…while 循环改写。
package com.fxm.day03.test; public class Day03test3{ public static void main(String[] args){ test1(100); test2(99); } public static int test1(int n){ int sum = 0; while(n > 0){ sum += n; n--; } System.out.println("1到100的和:"+sum); return 0; } public static int test2(int n){ int sum = 0; while(n > 0){ sum += n; n -= 2; } System.out.println("1到100的奇数和为:"+sum); return 0; } }
4.(for 循环)读入一个小于10 的整数n,输出它的阶乘n!。
package com.fxm.day03.test;
public class Day03test4{
public static void main(String[] args){
java.util.Scanner sc = new java.util.Scanner(System.in);
System.out.println("输入一个小于10的数:");
int n = sc.nextInt();
int result = 1;
for(int i = 1; i <= n; i++){
result *= i;
}
System.out.println("它的阶乘为:"+result);
}
}
5.(循环)找出1~100之中,所有能被5整除,或者被6整除的数字。在控制台输出
package com.fxm.day03.test;
public class Day03Test5{
public static void main(String[] args){
System.out.println("输出1到100之间能被5或6整除的数:");
for(int i = 1; i < 101; i++){
if(i % 5 == 0||i % 6 == 0){
System.out.print(" "+i);
}
}
}
}
6.(循环)用户输入一个数字,列出所有它能够整除的数字。 比如用户输入48,那么控制台中将显示:
package com.fxm.day03.test;
public class Day03Test6{
public static void main(String[] args){
java.util.Scanner sc = new java.util.Scanner(System.in);
System.out.println("输入一个数:");
int n = sc.nextInt();
System.out.println("它所以能整除的数有:");
for(int i = 1; i <= n; i++){
if(n % i == 0){
System.out.println(i);
}
}
}
}
7.(for 循环)求100 以内所有能被3 整除但不能被5 整除的数字的和。
package com.fxm.day03.test;
public class Day03Test7{
public static void main(String[] args){
int sum = 0;
for(int i = 1; i < 100; i++){
if(i % 3 == 0&&i % 5 != 0){
sum += i;
}
}
System.out.println("100以内所有能被3整除但不能被5整除的数字和:"+sum);
}
}
8.(for 循环)“百钱买百鸡”是我国古代的著名数学题。
题目描述:3文钱可以买1只公鸡,2文钱可以买一只母鸡,1文钱可以买3只小鸡。 用100文钱买100 只鸡,那么各有公鸡、母鸡、小鸡多少只?
package com.fxm.day03.test;
public class Day03Test8{
public static void main(String[] args){
int x,y,z;
for(x = 0;x < 100;x++){
for(y = 0;y < 100;y++){
for(z = 0;z < 100;z++){
if(3*x+2*y+z/3==100&&z%3==0&&x+y+z==100){
System.out.println("公鸡:"+x+" 母鸡:"+y+" 小鸡:"+z);
}
}
}
}
}
}
优化如下:
package com.fxm.day03.test; public class Day03Test8{ public static void main(String[] args){ int x,y,z; for(x = 0;x < 100;x++){ for(y = 0;y < 100;y++){ z = 100 - x - y; if(z % 3 != 0){ continue; } if(3*x+2*y+z/3==100){ System.out.println("公鸡:"+x+" 母鸡:"+y+" 小鸡:"+z); } } } } }
9.(for 循环)搬砖问题:36 块砖,36 人搬,男搬4,女搬3,两个小孩抬1 砖, 要求一次 全搬完,问 男、女和小孩各若干?
package com.fxm.day03.test;
public class Day03Test9{
public static void main(String[] args){
int x,y,z;
for(x = 1;x < 36;x++){
for(y = 1;y < 36;y++){
for(z = 2;z < 36;z+=2){
if(x+y+z==36&&4*x+3*y+z/2==36){
System.out.println("男:"+x+" 女:"+y+" 小孩:"+z);
}
}
}
}
}
}
10.(for 循环)编程找出四位整数abcd 中满足 (ab+cd)(ab+cd)=abcd 的数。 例如abcd=1234,则ab=12,cd=34;
package com.fxm.day03.test; public class Day03Test10{ public static void main(String[] args){ int a,b,c,d; for(a = 0;a < 10;a++){ for(b = 0;b < 10;b++){ for(c = 0;c < 10;c++){ for(d = 0;d < 10;d++){ if((10*a+b+10*c+d)*(10*a+b+10*c+d)==1000*a+100*b+10*c+d){ System.out.println("a:"+a+" b:"+b+" c:"+c+" d:"+d); } } } } } } }
优化如下:
package com.fxm.day03.test;
public class Day03Test10{
public static void main(String[] args){
for(int i = 1000;i < 9999;i++){
int ab = i / 100;
int cd = i % 100;
if((ab+cd)*(ab+cd)==i){
System.out.println(i);
}
}
}
}
11.(循环)*读入一个整数n,输出如下图形 n = 3
n = 4
思路:
I. 读入的整数n,就是外层循环的循环次数。 II. 对于每一行,要做的事情: 1). 输出若干个空格; 2). 输出若干个星; 3). 换行。 提示:输出不换行,用System.out.print()。
package com.fxm.day03.test; public class Day03Test11{ public static void main(String[] args){ java.util.Scanner sc = new java.util.Scanner(System.in); System.out.println("输入一个数:"); int n = sc.nextInt(); for(int i = 0;i < n;i++){ for(int j = 0;j < n-i;j++){ System.out.print(" "); } for(int k = 0;k <= 2*i;k++){ System.out.print("*"); } System.out.println(); } } }
12、利用循环,实现下面数据的输出结果。 1-3+5-7+…-99+101
package com.fxm.day03.test;
public class Day03Test12{
public static void main(String[] args){
int sum1 = 0;int sum2 = 0;
for(int i = 1;i < 102;i+=4){
sum1 += i;
}
for(int j = 3;j < 100;j+=4){
sum2 += j;
}
int result = sum1 - sum2;
System.out.println("1-3+5-7+бн-99+101="+result);
}
}
13.(for循环)输出99 乘法表。
package com.fxm.day03.test;
public class Day03Test13{
public static void main(String[] args){
for(int i = 1;i < 10;i++){
for(int j = 1;j <= i;j++){
System.out.print(i+"*"+j+"="+i*j+" "+"\t");
}
System.out.println();
}
}
}
14.(for循环)求水仙花数。
提示:所谓水仙花数,是指一个三位数abc,如果满足a³+b³+c³=abc,则abc是水 仙花数。
package com.fxm.day03.test; public class Day03Test14{ public static void main(String[] args){ for(int a = 0;a < 10;a++){ for(int b = 0;b < 10;b++){ for(int c = 0;c < 10;c++){ if(a*a*a+b*b*b+c*c*c==100*a+10*b+c){ System.out.print(a); System.out.print(b); System.out.print(c); System.out.println(); } } } } } }
5.写一个函数,接受一个整数,返回这个整数是几位数
package com.fxm.day04.test; import java.util.Scanner; public class Day04Test05{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("输入一个数:"); int n = sc.nextInt(); int x = test05(n); System.out.println("该数是"+x+"位数。"); } public static int test05(int n){ if(n == 0){ return 1; } int i = 0; while(n != 0){ n /= 10; i++; } return i; } }
6.(函数嵌套)打印所有的三位数,该三位数等与其每位数字的阶乘之和。
package com.fxm.day04.test; public class Day04Test06{ public static void main(String[] args){ for(int a = 0;a < 10;a++){ for(int b = 0;b < 10;b++){ for(int c = 0;c < 10;c++){ if(100*a+10*b+c==test06(a)+test06(b)+test06(c)){ System.out.print(a); System.out.print(b); System.out.print(c); System.out.println(); } } } } } public static int test06(int a){ if(a == 0){ return 1; } return a*test06(a-1); } }
7.(函数嵌套)如果整数A 的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部 因 子包括1,不包括B 本身)之和等于A,则称整数A\B是一对亲密数。打印出3000 以内的全部 亲密数。
package com.fxm.day04.test; public class Day04Test07{ public static void main(String[] args){ for(int A = 2;A < 3000;A++){ for(int B = 2;B < 3000;B++){ if(test07(A) == test07(B)&&A != B){ System.out.println("A:"+A+" B:"+B); } } } } public static int test07(int a){ int sum = 0; for(int i = 1;i < a;i++){ if(a % i == 0){ sum += i; } } return sum; } }
8.(函数嵌套)验证哥德巴赫猜想:
任何一个大于6的偶数,都能分解成两个质数的和。要求输入 一个整数,输出这个 数能被 分解成哪两个质数的和。 eg : 14 14=3+11 14=7+7
package com.fxm.day04.test; public class Day04Test08{ public static void main(String[] args){ java.util.Scanner sc = new java.util.Scanner(System.in); System.out.println("输入一个大于6的偶数:"); int n = sc.nextInt(); if(n % 2 != 0||n > 6){ System.out.println("输入有误!!"); }else{ for(int n1 = 1;n1 <= n/2;n1++){ int n2 = n - n1; if(test08(n1) && test08(n2)){ System.out.println(n+"="+n1+"+"+n2); } } } } public static boolean test08(int n){ if(n < 2){ return false; } for(int i = 2;i < n;i++){ if(n % i == 0){ return false; } } return true; } }
9、斐波那契数列的第1和第2个数分别为1和1,从第三个数开始,每个数等于其前两个数之 和(1,1,2,3,5,8,13….).写出一个函数,接受一个数表示数列序号,返回对应序号中序列的 值
package com.fxm.day03.test; public class Day03Test15{ public static void main(String[] args){ java.util.Scanner sc = new java.util.Scanner(System.in); System.out.println("输出一个数:"); int n = sc.nextInt(); int a = shulie(n); System.out.print(a); } public static int shulie(int n){ if(n ==1||n == 2){ return 1; } return shulie(n-1) + shulie(n-2); } }
10、写一个函数,接收一个整数n,判断这个数是不是质数。(质数是只能被1和它本身整除 的自然数,1本身不是质数)
package com.fxm.day04.test; public class Day04Test10{ public static void main(String[] args){ test10(); } public static int test10(){ java.util.Scanner sc = new java.util.Scanner(System.in); System.out.println("输入一个数:"); int n = sc.nextInt(); for(int i = 2;i < n;i++){ if(n % i == 0){ System.out.println("不是质数"); break; }else if(i == n-1){ System.out.println("是质数"); } } return 0; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。