zbhphoenix
2014-03-12 10:29
采纳率: 0%
浏览 520
已采纳

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

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

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • lihen123 2014-03-12 14:32
    已采纳

    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;

    }

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • ck504323276 2014-03-12 11:10

    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);
    
        }
    
    评论
    解决 无用
    打赏 举报
  • lihen123 2014-03-12 11:57

    //直接加7模100即可

    int count=0;

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

    System.out.println(count);
    }

    评论
    解决 无用
    打赏 举报
  • lihen123 2014-03-12 13:50

    遍历初始化为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;
    
        }
    
    评论
    解决 无用
    打赏 举报
  • peter8015 2014-03-12 15:27

    提供一个比较麻烦的:
    [code="java"]

    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++;
        }
    }
    }
    

    [/code]

    评论
    解决 无用
    打赏 举报
  • iteye_18740 2014-03-13 18:13

    //需要写个类,设置常量list = 需要遍历的数组,size 是需要提取的总数。
    private List get7OfList(List 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;
    }
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题