首页 > 代码库 > 第二周java基础学习内容

第二周java基础学习内容

 本周学习了java的基础知识并完成了一些相关的,代码示例

.1300个人围成一个圈,从某个指定的人开始报数,数到3的人退出继续开始数到3,求最后剩下的人的位置。

package j0413;

public class MyTest4 {

public static void main(String[] args) {
/*
* 300个人围成一个圈,从某个指定的人开始报数(1--3),凡是数到3的人退出圈子,
* 问最后剩下的一个是从指定位置开始计数的第几个人?
*/

int num[]=new int[300];
int i=0; // 数组的下标计数器 0---299
int count=0; // 退出的人数计数器 0---299
int n=1; // 数数的计数器 1---3

while(count<299){
// 数组的值如果是1,代表该位置的人不存在
// 不存在的位置则直接跳过
if(num[i]==1){
i++;
if(i>299) i=0;
continue;
}
// 数数计数器值为3,代表该位置上的人需要退出
if(n==3){
num[i]=1; // 代表退出
count++; // 退出的人数计数器累加
// System.out.println("退出序号:"+(i+1)+",计数器:"+count);
}

n++;
if(n>3) n=1;
i++;
if(i>299) i=0;
}
// System.out.println(count);
for(i=0; i<num.length; i++){
if(num[i]==0){
System.out.println("最后剩下的序号为:"+(i+1));
}
}
}

}

-----------------------------------------------------------------------------------------------------------------------------------

求1到500的素数个数

package j0413;

public class Homework1 {

public static void main(String[] args) {
//获取并输出1--500之间的素数,并输出数量
int count=0;
for(int i=2; i<=500; i++){
boolean bl = false;
for(int j=2; j<i; j++){
if(i%j==0){
bl = true;
break;
}
}
if(!bl){
System.out.println(i+"是一个素数");
count++;
}
}
System.out.println("\n素数总个数:"+count);

}

}

 

-----------------------------------------------------------------------------------------------------------------------------------

大乐透彩票模拟器:
规则: 前区01-35中随机生成5个号码
后区01-12中随机生成2个号码
模拟操作,系统自动生成号码组合,并且按从小到大的顺序输出结果
同时要求可以选择生成多少组(默认选项:生成1组,生成5组,生成10组)

int a[]=new int[36], b[]=new int[13];

int count=0;

while(count<5){
int num=(int)(Math.random()*35+1);
if(a[num]==0){
a[num]=1;
count++;
}
}
count=0;
while(count<2){
int num1=(int)(Math.random()*12+1);
if(b[num1]==0){
b[num1]=1;
count++;
}
}

System.out.print("前区的号码是:");
for(int i=1; i<a.length; i++){
if(a[i]==1)
System.out.print((i<10?"0"+i:i)+" ");
}
System.out.print("\n后区的号码是:");
for(int i=1; i<b.length; i++){
if(b[i]==1)
System.out.print((i<10?"0"+i:i)+" ");
}

/*
* 常规做法
int before[] = new int[5];
int num1, num2;

int count=0;

while(count<5){
if(count==0){
before[count] = (int)(Math.random()*35+1);
}else{
int temp = (int)(Math.random()*35+1);
before[count] = temp;
for(int i=0; i<count; i++){
if(temp==before[i]){
count--;
break;
}
}
}
count++;
}

for(int i=1; i<before.length-1; i++){
boolean bl = false;
for(int j=0; j<before.length-i; j++){
if(before[j]>before[j+1]){
int temp=before[j];
before[j]=before[j+1];
before[j+1]=temp;
bl=true;
}
}
if(!bl) break;
}

System.out.print("前区的号码是:");
for(int i=0; i<before.length; i++){
System.out.print((before[i]<10?"0"+before[i]:before[i])+" ");
}
*/

}

}

-----------------------------------------------------------------------------------------------------------------------------------

本周学习了java的基础语法,程序流程控制,数组。要完成这些练习题需要能够熟练地运用所学并且,在编写代码是有清晰地思路,把代码化难为易,一步一步实现代码功能。

 

第二周java基础学习内容