java 02 练习For_For

版权声明:本文为博主原创文章,未经博主允许不得转载。All Rights Reserved

目录(?)[+]
1) 水仙花数

水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
这里列举了三位数的情况:

for(int i=100; i<1000; i++){
    int baiwei = i / 100;
    int shiwei = (i - baiwei * 100) / 10;
    int gewei = i % 10;

    if(i == (baiwei * baiwei * baiwei)+(shiwei * shiwei * shiwei)+(gewei * gewei * gewei))  {
        System.out.println(i);
    }
}

水仙花数-执行结果
水仙花数-执行结果
2) 输出100以内所有奇数的和

int sum=0;
for(int i=1; i<=100; i+=2){
    sum+=i;
}
System.out.println(sum);

100以内所有奇数的和-执行结果
100以内所有奇数的和-执行结果
3) 1~100之间所有是7的倍数的整数

int sum=0;
int count=0;
for(int i=1; i<=100; i++){
    if(i % 7 == 0){
        // System.out.println(i);  打印1~100之间所有是7的倍数的整数
        sum += i;
        count += 1;
    }
}
System.out.println("1~100之间所有是7的倍数的整数的个数为:" + count);
System.out.println("总和为:" + sum);

1~100之间所有是7的倍数的整数-执行结果
1~100之间所有是7的倍数的整数-执行结果
4) 求最小公倍数和最大公约数

int m = 1;
int n = 28;

int max = (m > n) ? m : n;
int min = (m > n) ? n : m;

for (int i = max; i <= m * n; i++) {
    if (i % m == 0 && i % n == 0) {
        System.out.println("最小公倍数:" + i);
        break;
    }
}

for (int i = min; i >= 1; i--) {
    if (m % i == 0 && n % i == 0) {
        System.out.println("最大公约数:" + i);
        break;
    }
}

5) 九九乘法表

for (int i = 1; i <= 9; i++) {
    for (int j = 1; j < 1 + i; j++) {
        String result;
        if ((j * i) < 10) {
            result = "0" + (j * i);
        } else {
            result = "" + (j * i);
        }
        System.out.print(j + "*" + i + "=" + result + " ");
    }
    System.out.println();
}

九九乘法表-执行结果
九九乘法表-执行结果
6) 图形打印
(1) 例子1

for (int i = 0; i < 4; i++) { // 控制行数
    for (int j = 0; j < 5; j++) { // 控制列数
        System.out.print("*"); // 注意 : 此处是print()不是println()
    }
    System.out.println();
}

打印图形:例子1-执行结果
打印图形:例子1-执行结果
(2) 例子2

for (int i = 0; i < 5; i++) {
    for (int j = -1; j < i; j++) { // j的初始化值要比i的初始化值小1
        System.out.print("*");
    }
    System.out.println();
}

打印图形:例子2-执行结果
打印图形:例子2-执行结果
(3) 例子3

for (int i = 0; i < 5; i++) {
    for (int j = 5; j > i; j--) {
        System.out.print("*");
    }
    System.out.println();
}

打印图形:例子3-执行结果
打印图形:例子3-执行结果
(4) 例子4

for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 4 - i; j++) { // 控制每列需要打印的空格
        System.out.print(" ");
    }
    for (int j = 0; j < i + 1; j++) { // j的初始化值和i的初始化值一样,则需要在循环条件处加1
        System.out.print(" *");
    }
    System.out.println();
}

打印图形:例子4-执行结果
打印图形:例子4-执行结果
(5) 例子5

当知道原理时,你就可以叠加使用。

for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 4 - i; j++) {
        System.out.print(" ");
    }
    for (int j = 0; j < i + 1; j++) {
        System.out.print(" *");
    }
    System.out.println();
}
for (int i = 0; i < 5; i++) {
    for (int j = 0; j < i + 1; j++) {
        System.out.print(" ");
    }
    for (int j = 0; j < 4 - i; j++) {
        System.out.print(" *");
    }
    System.out.println();
}

打印图形:例子5-执行结果
打印图形:例子5-执行结果
7) 取100内的质数【节约时间和资源的思想】

int count = 0;

boolean flag = false;

long b=System.currentTimeMillis();
for (int i = 2; i <= 100; i++) {
    for (int j = 2; j <= Math.sqrt(i); j++) { // 开根号i,极大地缩短了时间
        if (i % j == 0) {
            flag = true;
            break; // 提前退出循环,节约时间
        }
    }
    if (!flag) {
        count += 1;
        System.out.println(i);
    }
    flag = false;
}
System.out.println("共" + count + "个质数");
long e=System.currentTimeMillis();
System.out.println((double)(e-b) / 1000 + "秒");

取100内的质数【节约时间和资源的思想】-执行结果
取100内的质数【节约时间和资源的思想】-执行结果
嵌套for循环 tips

注意:循环嵌套,里层的for循环一旦循环完毕就会初始化变量。
[打印图形] 三角形 : for ( ; (1+i); )   倒三角形 : for ( ; (层数-i); )
[打印图形] 不要几层(从第一层开始): i从几层开始计数。
1. 编写程序从文件中读取数据,并输出到控制台。 ```java import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class ReadFromFile { public static void main(String[] args) { try { File file = new File("data.txt"); Scanner scanner = new Scanner(file); while (scanner.hasNextLine()) { System.out.println(scanner.nextLine()); } scanner.close(); } catch (FileNotFoundException e) { System.out.println("File not found."); } } } ``` 2. 编写程序从控制台读取数据,并将数据写入文件。 ```java import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; public class WriteToFile { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter data: "); String data = scanner.nextLine(); scanner.close(); try { File file = new File("output.txt"); FileWriter writer = new FileWriter(file); writer.write(data); writer.close(); } catch (IOException e) { System.out.println("Error writing to file."); } } } ``` 3. 编写程序从一个文件中复制数据到另一个文件。 ```java import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class CopyFile { public static void main(String[] args) { try { File inputFile = new File("input.txt"); File outputFile = new File("output.txt"); FileInputStream inputStream = new FileInputStream(inputFile); FileOutputStream outputStream = new FileOutputStream(outputFile); byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, length); } inputStream.close(); outputStream.close(); } catch (FileNotFoundException e) { System.out.println("File not found."); } catch (IOException e) { System.out.println("Error copying file."); } } } ``` 4. 编写程序读取一个目录下的所有文件,并输出文件名和文件大小。 ```java import java.io.File; public class ListFiles { public static void main(String[] args) { File directory = new File("."); File[] files = directory.listFiles(); for (File file : files) { if (file.isFile()) { System.out.println(file.getName() + " (" + file.length() + " bytes)"); } } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值