用java完成下列任务1、编程完成6位随机密码(纯数字)的生成,添加每一位不能重复的功能。 2、编程完成二进制转十进制。 3、编程完成发红包功能(将200元发给10个人,并输出每个人发多钱。) 4、输出1-100的质数(质数:只能被1和本身整除)。
时间: 2023-09-16 10:05:00 浏览: 105
使用java实现复数的加减乘除,并将它们存储在集合中,实现复数的增删改查等,也能按照复数的数学表示格式将集合中所有复数打印输出。
### 回答1:
答:1、可以使用Math.random()方法生成一个大于0小于1的随机数,然后将其转换为6位数字,并再次检查是否有重复的数字。 2、可以使用parseInt()方法将二进制转换为十进制。 3、可以使用Math.random()方法计算每个人的红包金额,然后输出。 4、可以使用for循环遍历1到100,然后使用if语句检查每个数是否为质数,如果是质数则输出。
### 回答2:
1、编程完成6位随机密码(纯数字)的生成,添加每一位不能重复的功能。
编写一个Java程序,首先生成一个包含0-9的随机数字数组,然后使用洗牌算法将数组随机打乱,最后取数组前6位作为密码。具体代码如下:
```java
import java.util.Arrays;
import java.util.Random;
public class RandomPasswordGenerator {
public static void main(String[] args) {
int[] nums = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
shuffleArray(nums); // 使用洗牌算法打乱数组顺序
int[] password = Arrays.copyOfRange(nums, 0, 6); // 取数组前6位作为密码
System.out.println("生成的密码是:" + Arrays.toString(password));
}
private static void shuffleArray(int[] nums) {
Random random = new Random();
for (int i = nums.length - 1; i > 0; i--) {
int j = random.nextInt(i + 1);
int temp = nums[j];
nums[j] = nums[i];
nums[i] = temp;
}
}
}
```
2、编程完成二进制转十进制。
编写一个Java程序,使用`Integer.parseInt`方法将二进制字符串转换为十进制数字。具体代码如下:
```java
public class BinaryToDecimal {
public static void main(String[] args) {
String binary = "101010"; // 输入二进制字符串
int decimal = Integer.parseInt(binary, 2); // 将二进制字符串转换为十进制数字
System.out.println("转换后的十进制数字是:" + decimal);
}
}
```
3、编程完成发红包功能(将200元发给10个人,并输出每个人发多钱)。
编写一个Java程序,使用随机数生成每个人的红包金额,确保总金额等于200,并将金额保留两位小数后输出。具体代码如下:
```java
import java.text.DecimalFormat;
import java.util.Random;
public class RedEnvelope {
public static void main(String[] args) {
int totalAmount = 200; // 红包总金额
int totalPeople = 10; // 红包总人数
Random random = new Random();
double[] amounts = new double[totalPeople];
double remainingAmount = totalAmount;
for (int i = 0; i < totalPeople - 1; i++) {
// 随机生成每个人的红包金额(最小为0.01,最大为剩余金额/剩余人数*2)
double amount = random.nextDouble() * (remainingAmount / (totalPeople - i) * 2 - 0.01) + 0.01;
remainingAmount -= amount;
amounts[i] = Double.parseDouble(new DecimalFormat("#.00").format(amount));
}
amounts[totalPeople - 1] = Double.parseDouble(new DecimalFormat("#.00").format(remainingAmount));
System.out.println("每个人获得的红包金额如下:");
for (int i = 0; i < totalPeople; i++) {
System.out.println("第" + (i + 1) + "个人:" + amounts[i] + "元");
}
}
}
```
4、输出1-100的质数(质数:只能被1和本身整除)。
编写一个Java程序,使用循环和判断是否为质数的方法输出1-100之间的质数。具体代码如下:
```java
public class PrimeNumbers {
public static void main(String[] args) {
System.out.println("1-100的质数如下:");
for (int i = 2; i <= 100; i++) {
if (isPrime(i)) {
System.out.print(i + " ");
}
}
}
private static boolean isPrime(int number) {
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
```
### 回答3:
任务一:编程完成6位随机密码(纯数字)的生成,添加每一位不能重复的功能。
```java
import java.util.Random;
public class RandomPassword {
public static void main(String[] args) {
StringBuilder password = new StringBuilder();
Random random = new Random();
boolean[] usedDigits = new boolean[10];
// 生成6位随机密码,每位数字不能重复
for (int i = 0; i < 6; i++) {
int digit;
do {
digit = random.nextInt(10); // 生成0-9之间的随机数字
} while (usedDigits[digit]); // 当数字已被使用时重新生成
usedDigits[digit] = true;
password.append(digit);
}
System.out.println("生成的随机密码:" + password.toString());
}
}
```
任务二:编程完成二进制转十进制。
```java
public class BinaryToDecimal {
public static int binaryToDecimal(String binary) {
int decimal = 0;
int power = 0;
for (int i = binary.length() - 1; i >= 0; i--) {
if (binary.charAt(i) == '1') {
decimal += Math.pow(2, power);
}
power++;
}
return decimal;
}
public static void main(String[] args) {
String binary = "10101";
int decimal = binaryToDecimal(binary);
System.out.println("二进制数 " + binary + " 转换为十进制数为 " + decimal);
}
}
```
任务三:编程完成发红包功能(将200元发给10个人,并输出每个人发多少钱)。
```java
import java.text.DecimalFormat;
import java.util.Random;
public class RedEnvelope {
public static void main(String[] args) {
int totalAmount = 200;
int numOfPeople = 10;
double[] amounts = new double[numOfPeople];
Random random = new Random();
double remainingAmount = totalAmount;
// 分配红包金额
for (int i = 0; i < numOfPeople - 1; i++) {
double amount = random.nextDouble() * remainingAmount; // 随机生成金额
DecimalFormat decimalFormat = new DecimalFormat("0.00");
amount = Double.parseDouble(decimalFormat.format(amount)); // 舍去多余的小数位
amounts[i] = amount;
remainingAmount -= amount;
}
amounts[numOfPeople - 1] = remainingAmount; // 最后一个人获得剩余金额
// 输出每个人获得的金额
for (int i = 0; i < numOfPeople; i++) {
System.out.println("第" + (i + 1) + "个人获得" + amounts[i] + "元");
}
}
}
```
任务四:输出1-100的质数。
```java
public class PrimeNumbers {
public static boolean isPrime(int number) {
if (number <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
System.out.println("1-100的质数:");
for (int i = 1; i <= 100; i++) {
if (isPrime(i)) {
System.out.print(i + " ");
}
}
}
}
```
阅读全文