0 0

初学者求指导!java用基本的循环或者数组解决1-100循环取出第七个数并输出 取满50为止5

题目大概是1-100取第七个数 7 14 21....98,
然后从99开始继续取第七个:5 ,12 19...
我能想到的方法是定义一个长度为7的数组,
然后把这100个数依次放进去取下标为6的数,累计到50跳出.
但是纠结了很久不会用程序实现,求人指点!
Ps:新手刚学到java基础的数组.

问题补充:之前提的问题是我的错误 第二次从99开始循环取第七个数是 5 13 22 (忘记抛出之前已经取到的7 14 21....)
麻烦刚才的2位好心人了
2014年3月12日 10:29

6个答案 按时间排序 按投票排序

0 0

采纳的答案

int[] array=new int[102];//需遍历的数组,初始为0,
int j=1;//遍历时计数用
int k=7;//取第几个数,这里为7
int count=0;//统计输出个数
for (int i = 1; i < array.length; i++) {

if(i==array.length-1){//超过100,置1,类似循环数组
i=1;
}

if(array[i]==0){//未遍历到的值,计数加1
if(j==k){//第k个数
array[i]=1;//置为非0值,这里为1
j=1;//计数归1
count++;
System.out.println(i);
}
else
j++;
}

if(count==50)
break;

}

2014年3月12日 14:32
0 0


//需要写个类,设置常量list = 需要遍历的数组,size 是需要提取的总数。
private List<Integer> get7OfList(List<Integer> list, int size) {

List<Integer> copyList = new ArrayList<Integer>();
copyList.addAll(list);
int j = 0;
for (int i = 1; i < list.size(); i++) {

if (i % 7 == 0 && result.size() < size) {
result.add(list.get(i - 1));
copyList.remove(i - 1 - j);
++j;
} else if (result.size() > size) {
break;
} else {
continue;
}
}
list.removeAll(list);
list.addAll(copyList.subList(copyList.size() - 2, copyList.size()));
list.addAll(copyList.subList(0, copyList.size() - 3));
if (result.size() < 50) {
get7OfList(list, size);
}
return result;
}

2014年3月13日 18:13
0 0

提供一个比较麻烦的:


    public static void main(String[] args) {
	List l = new ArrayList();

	int k = 0, n = 0;
	while (k < 50) {
	    if (n < 7) {
		n++;
		continue;
	    }
	    if (n == 7 && k == 0) {
		l.add(n);
		k++;
	    } else {
		n += 7;
		l.add(n);
		k++;
	    }
	}
    }


2014年3月12日 15:27
0 0

遍历初始化为0的数组,遇0加1,加到7时输出数组下标并将数组此项置为非0值。

int[] array=new int[102];//需遍历的数组,初始为0,
int j=1;//遍历时计数用
int k=7;//取第几个数,这里为7
int count=0;//统计输出个数
for (int i = 1; i < array.length; i++) {
if(j==k){//第k个数
array[i]=1;//置为非0值,这里为1
j=1;//计数归1
count++;
System.out.println(i);
}

if(array[i]==0){//未遍历到的值,计数加1
j++;
}

if(i==array.length-1){//超过100,置1,类似循环数组
i=1;
}

if(count==50)
break;

}

2014年3月12日 13:50
0 0

//直接加7模100即可

int count=0;

for(int i=0;i<50;i++)
{
count=(count+7)%100;

System.out.println(count);
}

2014年3月12日 11:57
0 0

int j=0;
//循环50次
for(int i=0;i<50;i++){
//小于100就叠加7
if((j+7)<=100){
j+=7;

}else{
//大于100,就减掉100,剩下的作为起始值进入下一次循环
int num=j+7-100;
j=num;
}
System.out.println(j);

}

2014年3月12日 11:10

相关推荐

Global site tag (gtag.js) - Google Analytics