java笔试中遇到的程序题记录
题目1:n个人排成一个圈,从第一个人开始报数,从1开始报,报道m的人出圈,,剩下的人继续开始从1报数,,直到所有的人出圈为止。求出所有人的出圈顺序
public class Quan {
public static void main(String[] args) {
baoShu(12,3);
}
public static void baoShu(int n,int m){
//创建数组,下标+1,代表每个人的位置
//数组值1,0 1未出圈 0已出圈 初始值为1
int[] arr = new int[n];
for(int i=0;i<n;i++){
arr[i] = 1;
}
//报数次数
int count = 0;
int len = arr.length;//数组长度值,每出圈一人,减一,只到零
while(true){
for(int i=0;i<arr.length;i++){
if(arr[i] != 0){
count++;
if(count%m==0){
System.out.print(i+1 + " ");
//出圈,值为0
arr[i] = 0;
len--;
if(len == 0){//全部出圈完,程序结束
return;
}
}
}
}
}
}
}
题目2:编程实现求斐波那契数列第n项
F0 = 0,F1= 1, Fn = Fn-1 + Fn-2
public class MainClass {
public static void main(String[] args) {
fun(10);
}
public static void fun(int n){
int a = 0;
int b = 1;
int c = 0;
for(int i=2;i<=n;i++){
c = a + b;
a = b;
b = c;
}
System.out.println(c);
}
}
(n>=2)

浙公网安备 33010602011771号