设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(列子)