- 输出所有形如aabb的4位完全平方数
public class Exam2_1 {
public static void main(String[] args) {
System.out.println("形如aabb的4位完全平方数");
for (int a = 1; a < 10; a++) {
for (int b = 0; b < 10; b++) {
// a重复前两位,b重复后两位
int n = 1100 * a + 11 * b;
// 对于开平方后的结果进行四舍五入
int m = (int)Math.round(Math.sqrt(n));
if (m * m == n) {
System.out.println(n);
}
}
}
}
}
- 3n + 1问题:对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为原来数的一半,若干次变换后一定会使n变为1.求变换次数。(n <= 109)
说明:
// 给定 n <= 10^9;
// 需要用到的操作包含
n = n * 3 + 1;
// 考虑到Interger的最大值,2147483647 ,考虑3 * 10^9 = 3E9 > 2147483647,所以n要选用long
import java.util.Scanner;
public class Exam2_2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入n");
long n = input.nextInt();
long count = 0;
while (n != 1) {
if (n % 2 != 0) {
n = 3 * n + 1;
} else {
n = (long)(n / 2);
}
count++;
}
System.out.println("count = " + count);
}
}
- 计算π,计算公式是π/4 = 1-1/3+1/5-1/7……,直到最后一项小于10-6为止。
public class Exam2_3 {
public static void main(String[] args) {
int num = 1;
float res = 0.0f;
// 用来变换符号
int tag = 1;
float temp = 0.0f;
do {
temp = 1.0f / num;
res += temp * tag;
num += 2;
tag *= -1;
} while (temp >= 1e-6f);
System.out.println("res = " + res);
}
}
// 0.7853995
- 阶乘之和:输入n,计算S=1!+2!+3!+···n!的末6位(不含前导0).n<=106,n!表示前n个正整数之积
样例输入:
10
样例输出:
37913
简单分析:
我们可以使用一个数专门用来记录阶乘的值(temp),然后再用一个值累加阶乘即可,因为只需要末6位,所以可以对于结果直接取余1e6。
import java.util.Scanner;
public class Exam2_4 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入n");
int n = input.nextInt();
long res = 0;
long temp = 1;
final int NUM = (int)1e6;
for (int i = 1; i <= n; i++) {
temp *= i;
temp %= NUM;
res += temp;
res %= NUM;
}
System.out.println("res = " + res);
}
}