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以内所有奇数的和-执行结果
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的倍数的整数-执行结果
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-执行结果
(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-执行结果
(3) 例子3
for (int i = 0; i < 5; i++) {
for (int j = 5; j > i; j--) {
System.out.print("*");
}
System.out.println();
}
打印图形:例子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-执行结果
(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-执行结果
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内的质数【节约时间和资源的思想】-执行结果
嵌套for循环 tips
- 注意:循环嵌套,里层的for循环一旦循环完毕就会初始化变量。
- [打印图形] 三角形 : for ( ; (1+i); ) 倒三角形 : for ( ; (层数-i); )
- [打印图形] 不要几层(从第一层开始): i从几层开始计数。