-
初学者求指导!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个答案 按时间排序 按投票排序
-
采纳的答案
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
-
//需要写个类,设置常量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
-
提供一个比较麻烦的:
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加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
-
//直接加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
-
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
相关推荐
基于springboot的招聘求职系统源码数据库文档.zip
基于springboot的校园自助洗衣服务管理系统源码数据库文档.zip
基于java的家乡特产网上商城的开题报告.docx
基于java的校园跑腿管理系统的开题报告
毕业设计&课设_ 健身房管理系统 Java 后端,含多种功能模块,代码完整开源.zip
基于springboot的小学家校互联平台源码数据库文档.zip
基于java的线上选课系统的开题
基于springboot+vue的桂林旅游网站系统源码数据库文档.zip
基于springboot协同过滤算法的个性化音乐推荐系统源码数据库文档.zip
基于SpringBoot的中药材管理系统源码数据库文档.zip
基于springboot的电缆行业生产管理系统源码数据库文档.zip
最新HTML一键打包EXE工具2.0.0, 采用了新的内核, 相比1.x版本, 支持更多最新浏览器特性. HTML一键打包EXE工具能把任意HTML项目(址)一键打包为单个exe文件,在脱离浏览器及服务器的情况下直接运行,支持课件,游戏,址等各类项目.
基于SpringBoot的社区居民诊疗健康管理系统源码数据库文档.zip
上传【mysql数据库项目】资源
压缩文件(3).zip
安装office2010时经常会提示MSXML未安装等问题,导致无法继续安装,使用此一键修复工具可以完美解决
基于springboot的网上商城源码数据库文档.zip
详情介绍 html实现的破碎拼接文字动画特效代码是一段会自动产生文字依次破碎再拼接的效果,非常的炫。欢迎对此段代码感兴趣的朋友前来下载使用。
基于springboot高考志愿智能推荐系统源码数据库文档.zip
Oracle数据库是一种功能强大的关系型数据库管理系统,在企业中被广泛使用。为了方便用户进行数据库管理和操作,Oracle提供了丰富的命令集。 《Oracle常用命令速查手册》将介绍一些常用的Oracle命令和其用法,比如数据导入导出命令、存储过程和触发器的管理以及性能监控等方面的常用命令,通过简单明了的示例,展示了每个命令的用法和效果,以帮助读者更好地理解和使用Oracle数据库