欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java小题;练习

程序员文章站 2022-05-15 08:46:35
...
               ## Java小题练习

1.编写程序,使它产生10个随机加法问题,加数是两个1到15之间的整数。显示答案的个数和测试时间。

public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0;
Random r = new Random();
Scanner in = new Scanner(System.in);
long time = System.currentTimeMillis();
for (int i = 0; i < 10; i++) {
int a = r.nextInt(15) + 1;
int b = r.nextInt(15) + 1;
System.out.print("第" + (i + 1) + "道:" + a + " + " + b + " = ");
int c = in.nextInt();
if (a + b == c) {
sum++;
}
}
time = System.currentTimeMillis() - time;
System.out.println("正确数目:" + sum + ",花费了" + time + "毫秒");
}
}

结果:第1道:15+15=30;....;第10道:2+3=5正确数目:10花费了42028毫秒

2.设计一个程序求解e的值。精度达到10的负六次方。

public class B {
public static void main(String[] args) {
// TODO Auto-generated method stub
double e = 1, sum = 1; // e的初值为1,sum用来存放n!
int i = 1;
while (sum < Math.pow(10, 1000000)) { // 当sum大于10的1000000次方的时候我们认为已近似的
sum = i * sum; // 相等了,如果这个数设置的更大就会更加接近e
e = 1.0 / sum + e;
i++;
}
System.out.println("e=" + e);
}
}

结果 e=2.728281
3.判断101—200之间有多少个素数,并输出所有的素数

public class C {
public static void main(String[] args) {
// TODO Auto-generated method stub
int count = 0;
for (int i = 101; i < 200; i += 2) {
boolean b = false;
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
b = false;
break;
} else {
b = true;
}
}
if (b == true) {
count++;
System.out.println(i);
}
}
System.out.println("素数个数是: " + count);
}
}

结果: 101 103 107 109 113…199 count=21
4.打印出1000以内所以的“水仙花数”

public static void main(String[] args) {
// TODO Auto-generated method stub
int a, b, c, n;
for (n = 100; n <= 1000; n++) {
a = n % 10;
b = n / 10 % 10;
c = n / 100 % 10;
if (n == Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3))
System.out.print(n + "  ");
}

}
}

结果153 370 371 407
5.输入某年某月某日,判断这一天是这一年的第几天?

10.public static void main(String[] args) {
// TODO Auto-generated method stub
int year;
int mouth;
int day = 0;
int days;
// 累计天数
int d = 0;
int e = 0;
Scanner scanner = new Scanner(System.in);
do {
System.out.println("输入年:");
year = scanner.nextInt();
System.out.println("输入月:");
mouth = scanner.nextInt();
System.out.println("输入日:");
days = scanner.nextInt();
if (mouth < 0 || mouth > 12 || days < 0 || days > 31) {
System.out.println("input error!");
e = 1;
}
} while (e == 1);
for (int i = 1; i < mouth; i++) {
switch (i) {
case 1:
,,,,,
case 11: {
day = 30;
break;
}
case 2: {
/**
 * 闰年:①:非整百年数除以4,无余为闰,有余为平;②整百年数除以400,无余为闰有余平 二月:平年28天、闰年29天
 */
if ((year % 100 != 0 && year % 4 == 0)
|| (year % 100 == 0 && year % 400 == 0)) {
day = 29;
} else {
day = 28;
}
}
default:
break;
}
d += day;
}
System.out.println("这是" + year + "年的" + (d + days) + "天");
}
}

结果 2012的 2 29 这是2012年的第60天

相关标签: java 练习

上一篇: 回文数

下一篇: rmdir命令