Java习题
设n为1~1500间的所有整数,按照如下要求计算和输出。
1、判断并输出n中能被3和5和7同时整除的数的个数;
2、判断并输出n中能被3或5或7整除的数的个数;
3、判断并输出n中能被3或5或7整除的所有数的累加和;
4、判断并输出n中能被3或5或7整除的前20个数的累加和;
5、判断并输出n中能被3或5或7整除的前10个数的累乘积;
package test10;
public static void a1() { int number = 0; for (int i = 1; i <= 1500; i++) { if (i % 3 == 0 && i % 5 == 0 && i % 7 == 0) { number++; }/*整除,取余为0,同时,与逻辑,求数量,设变量循环计数*/ } System.out.print("个数为"+number); } public static void a2(){ int number = 0; for (int i = 1; i <= 1500; i++) { if (i % 3 == 0 || i % 5 == 0 || i % 7 == 0) { number++; }/*整除,取余为0,或者,或逻辑*/ } System.out.print("个数为"+number); } public static void a3(){ int sum = 0; for (int i = 1; i <= 1500; i++) { if (i % 3 == 0 || i % 5 == 0 || i % 7 == 0) { sum+=i; }/*整除,取余为0,或者,或逻辑,求数量,设变量循环计数*/ } } public static void a4(){ int sum = 0; int number=0; for (int i = 1; i <= 1500; i++) { if (i % 3 == 0 || i % 5 == 0 || i % 7 == 0) { sum+=i; number++; }/*整除,取余为0,或者,或逻辑,求数量,设变量number循环计数,设变量sum求和*/ if(number==20){ break; }/*判断计数的数量为前20个*/ } System.out.print("累加和为"+sum); } public static void a5(){ long sum = 1; int number=0; for (int i = 1; i <= 1500; i++) { if (i % 3 == 0 || i % 5 == 0 || i % 7 == 0) { sum*=i; number++; }}/*整除,取余为0,或者,或逻辑,求数量,设变量number循环计数,设变量sum求乘积*/ if(number==10){ break; }/*判断计数的数量为前10个*/ } System.out.print("前10个数累乘为"+sum); }public static void main(String[] args) { a1(); System.out.println(); a2(); System.out.println(); a3(); System.out.println(); a4(); System.out.println(); a5(); System.out.println(); }/*每个方法封装,主方法只调用子方法*/ }
结果如图所示
求1-3+5-7+...-99+101的值
package test11; public class Test11 { public static void a1(){ int sum=0;/*求和变量初始值*/ int j=-1;/*相加变量初始值*/ int ret=1; for(int i=1;i<=101;i+=2){ j=-j; ret=i*j; //解决某项的值 sum+=ret; } System.out.println(sum); } public static void main(String[] args) { a1(); } }
运行结果为51
假设a、b、c是三角形的三条边,当三条边符合勾股定理时,即,a2+b2=c2 ,为直角三角形。若a、b、c均为小于等于50的整数,求能够组成直角三角形的所有组合。请显示边的各种可能组合情况,显示总的组合数量。注意:
(a=3, b=4, c=5)
(a=4, b=3, c=5)
(a=5, b=4, c=3)
等情况只能算1种组合。(参考答案:20种)
package *; public class Test12 { public static void main(String[] args) { int a, b, c, number = 0; for (a = 1; a <= 50; a++) { for (b = 1; b <= 50; b++) { for (c = 1; c <= 50; c++) { if (a * a + b * b == c * c && a > b) { System.out.println("a=" + a + " " + "b=" + b + " " + "c=" + c + " "); number++;/*统计数量*/ }/*for循环三重,遍历数据*/ } } } System.out.println("组合数量" + number); } }
结果:
编写程序,输出如下图形所示高度为n的图形。当n=6时:
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
31 32 33 34 35 36
package *; public class Test13 { public static void leisishuzu(int n) { for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { System.out.print((i - 1) * 6 + j + " "); } System.out.println(); } System.out.println(); }/*类似遍历二维数组*/ public static void main(String[] args) { leisishuzu(6); } }
结果:
计算π的近似值。公式如下:
直到累加项的绝对值小于10-4为止(即求和的各项的绝对值均大于等于10-4)。
package *; public class Test14 { public static void main(String[] args) { double ret = 1; int n = 1; double sum = 0; int sign = -1; while (Math.abs(ret) > 1E-4) { sign = -sign; ret = 1 / (sign * n * (1.0)); sum += ret; n += 2; System.out.println(Math.abs(ret)); } System.out.println("值为" + sum * 4); } }
结果:
编制程序要求输入整数a和b,若大于100,则输出百位以上的数字,否则输出两数之和。
package *; public class Test15 { public static void main(String[] args) { int a, b; a = 3; b = 8; if ((a * a + b * b) > 100) { System.out.println("百位以上数字" + (a * a + b * b) / 100); } else { System.out.println("两数之和" + (a + b)); } } }
结果:e两数之和为11(列子)
oraclepeixun