7.23
package demo;
import java.util.*;
public class diqizhang {
public static void main(String[] args){
boolean[] num = new boolean[101];
for(boolean num1:num)
num1=false;
for(int i=1;i<=100;i++){
int base = i;
while(base<=100){
num[base] =! num[base];
base += i;
}
}
for(int i=1;i<=100;i++){
if(num[i])
System.out.print(i+" ");
}
}
}
7.24
package demo;
import java.util.*;
public static void main(String[] args){
int[] pattern = new int[4];
int countPick = 0;
int countPattern = 0;
while(countPattern<4){
int card = (int)(Math.random()*52);
countPick++;
if(pattern[card/13]==0){
pattern[card/13]=card;
countPattern++;
}
}
String[] dock = {"Spades","Clubs","Hearts","Diamonds"};
String[] point = {"Ace","2","3","4","5","6","7","8","9","10","Jack","Queen","King"};
for(int i=0;i<4;i++)
System.out.printf("%s of %s\n", point[pattern[i]%13],dock[i]);
System.out.println("Number of picks: "+countPick);
}
}
7.25
package demo;
import java.util.*;
public class diqizhang {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter a b c: ");
double[] s = new double[3];
for(int i=0;i<3;i++)
s[i] = input.nextDouble();
double[] r = new double[2];
int nums = solveQuadratic(s,r);
System.out.println(nums+" roots");
for(int i=0;i<nums;i++)
System.out.print(r[i]+" ");
}
public static int solveQuadratic(double[] eqn,double[] roots){
double a = eqn[0];
double b = eqn[1];
double c = eqn[2];
double d = b*b-4*a*c;
if(d<0)
return 0;
else if(d==0){
roots[0]=-1*b/(2*a);
return 1;
}else{
roots[0]=(-1*b+Math.sqrt(d))/(2*a);
roots[1]=(-1*b-Math.sqrt(d))/(2*a);
return 2;
}
}
}
7.26
package demo;
import java.util.*;
public class diqizhang {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter list1 size and contents: ");
int s1 = input.nextInt();
int[] l1 = new int[s1];
for(int i=0;i<s1;i++)
l1[i]=input.nextInt();
System.out.print("Enter list2 size and contents: ");
int s2 = input.nextInt();
int[] l2 = new int[s2];
for(int i=0;i<s2;i++)
l2[i]=input.nextInt();
if(equals(l1,l2))
System.out.println("Two lists are strictly identical");
else
System.out.println("Two lists are not strictly identical");
}
public static boolean equals(int[] list1,int[] list2){
int l1 = list1.length;
int l2 = list2.length;
if(l1!=l2)
return false;
else{
for(int i=0;i<l1;i++){
if(list1[i]!=list2[i])
return false;
}
return true;
}
}
}
7.27
package demo;
import java.util.*;
public class diqizhang {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter list1 size and contents: ");
int s1 = input.nextInt();
int[] l1 = new int[s1];
for(int i=0;i<s1;i++)
l1[i]=input.nextInt();
System.out.print("Enter list2 size and contents: ");
int s2 = input.nextInt();
int[] l2 = new int[s2];
for(int i=0;i<s2;i++)
l2[i]=input.nextInt();
Arrays.sort(l1);//arrays.sort()对l1和l2进行排序。
Arrays.sort(l2);
if(equals(l1,l2))
System.out.println("Two lists are identical");
else
System.out.println("Two lists are not identical");
}
public static boolean equals(int[] list1,int[] list2){
int l1 = list1.length;
int l2 = list2.length;
if(l1!=l2)
return false;
else{
for(int i=0;i<l1;i++){
if(list1[i]!=list2[i])
return false;
}
return true;
}
}
}
7.28
package demo;
import java.util.*;
public class diqizhang {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter 10 numbers: ");
int[] nums = new int[10];
for(int i=0;i<10;i++)
nums[i] = input.nextInt();
int count = 1;
for (int i = 0; i < 10; i++)
for (int j = i + 1; j < 10; j++) {
System.out.print(count + ":" + nums[i] + " " + nums[j] + " ");
if(j == 9)
System.out.print("\n");
count++;
}
}
}
7.29
package demo;
import java.util.*;
public class diqizhang {
public static void main(String[] args){
int count = 0;
while(true){
int card1 = (int)(Math.random()*52);
int card2 = (int)(Math.random()*52);
while(card2 == card1)
card2 = (int)(Math.random()*52);
int card3 = (int)(Math.random()*52);
while(card3==card1||card3==card2)
card3 = (int)(Math.random()*52);
int card4 = (int)(Math.random()*52);
while(card4==card3||card4==card2||card4==card1)
card4 = (int)(Math.random()*52);
count++;
if(card1%13+card2%13+card3%13+card4%13+4==24)
break;
}
System.out.print("There are "+count+" times.");
}
}
7.30
package demo;
import java.util.*;
public class diqizhang {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter the number of values: ");
int num = input.nextInt();
System.out.print("Enter the values: ");
int[] n = new int[num];
for(int i=0;i<num;i++)
n[i]=input.nextInt();
if(isConsecutiveFour(n))
System.out.println("The list has consecutive fours.");
else
System.out.println("The list has no consevutive fours.");
}
public static boolean isConsecutiveFour(int[] values){
boolean num = false;
int base = values[0];
int count=1;
for(int i=1;i<values.length-1;i++){
if(values[i]==base)
count++;
else{
base = values[i];
count=1;
}
if(count==4){
num = true;
break;
}
}
return num;
}
}
7.31
package demo;
import java.util.*;
public class diqizhang {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.print("Enter list1 size and contents: ");
int num1 = input.nextInt();
int[] l1 =new int[num1];
for(int i=0;i<num1;i++)
l1[i]=input.nextInt();
System.out.print("Enter list2 size and contents: ");
int num2 = input.nextInt();
int[] l2 =new int[num2];
for(int i=0;i<num2;i++)
l2[i]=input.nextInt();
int[] nums=merge(l1,l2);
System.out.print("list 1 is ");
for(int i=0;i<num1;i++)
System.out.print(l1[i]+" ");
System.out.println();
System.out.print("list 2 is ");
for(int i=0;i<num2;i++)
System.out.print(l2[i]+" ");
System.out.println();
System.out.print("The merged list is ");
for(int i=0;i<num1+num2;i++)
System.out.print(nums[i]+" ");
System.out.println();
}
public static int[] merge(int[] list1,int[] list2){
int l1 = list1.length;
int l2 = list2.length;
int list = l1+l2;
int[] nums = new int[list];
int count=0;
int p1 = 0;
int p2 = 0;
while(p1<l1&&p2<l2){
if(list1[p1]<list2[p2]){
nums[count] = list1[p1];
count++;
p1++;
}else{
nums[count]=list2[p2];
count++;
p2++;
}
}
if(p1<l1-1){
for(int i=count;i<=l1+l2-1;i++){
nums[i]=list1[p1];
p1++;
}
}else if(p2<l2-1){
for(int i=count;i<=l1+l2-1;i++){
nums[i]=list2[p2];
p2++;
}
}
return nums;
}
}
7.32
这个题的参见,被挡了,我访问不进去,参考别人的方法做的,(__) 。
package demo;
import java.util.*;
public class diqizhang {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.print("Enter list1 size: ");
int num1 = input.nextInt();
System.out.print("Enter list contents: ");
int[] l1 =new int[num1];
for(int i=0;i<num1;i++)
l1[i]=input.nextInt();
partition(l1);
System.out.print("After the partition, the list is ");
for(int i=0;i<num1;i++)
System.out.print(l1[i]+" ");
System.out.println();
}
public static int partition(int[] list){
int len = list.length;
int[] help = new int[2*len];
int pivot = list[0];
help[len+1]=list[0];
int p1 = len;
int p2 = len+2;
for(int i=1;i<len;i++)
{
if(list[i]>pivot)
{
help[p2]=list[i];
p2++;
}
else
{
help[p1]=list[i];
p1--;
}
}
for(int i=0;i<len;i++)
list[i]=help[p1+1+i];
return len-p1;
}
}
7.33
这个题我没看3-9,直接写出来了,看题目就是数组字符串存储动物名称,应该没难度。
package demo;
import java.util.*;
public class diqizhang {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter the Chinese Zodiac: ");
String[] zoo = new String[12];
for(int i=0;i<12;i++)
zoo[i] = input.next(); //既然是十二生肖,就自行输入鼠(Rat)、牛(Ox)、虎(Tiger)、兔(Hare)、龙(Dragon)、蛇(Snake)、马(Horse)、羊(Sheep)、猴(Monkey)、鸡(Rooster)、狗(Dog)、猪(Boar)
for(int j=0;j<zoo.length;j++){
System.out.print(zoo[j]+",");
}
}
}
7.34
package demo;
import java.util.*;
public class diqizhang {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.print("Enter a string: ");
String str = input.next();
System.out.println(sort(str));
}
public static String sort(String s){
int len = s.length();
char[] str = new char[len];
for(int i=0;i<len;i++)
str[i]=s.charAt(i);
Arrays.sort(str);
String str2 ="";
for(int i=0;i<len;i++)
str2 += str[i];
return str2;
}
}