| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1995 人关注过本帖
标题:求解题思路
只看楼主 加入收藏
qq313629058
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-11-8
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求解题思路
大厅里有50盏灯,每盏灯都编了号码,分别为1-50。每盏灯由一个开关来控制。(开关按一下,灯亮,再按一下灯灭。开关的编号与被控制的灯相同。)开始时,灯是全灭的。现在按照以下规则按动开关。
第一次,将所有的灯点亮。
第二次,将所有2的倍数的开关按一下。
第三次,将所有3的倍数的开关按一下。
以此类推。第N次,将所有N的倍数的开关按一下。
问第49次按完以后,大厅里还有几盏灯是亮的?
要求:使用安卓技术,选用一个合适的布局方式,布置灯泡 ,大概排成10行5列。界面能看到第几次操作,直到第49次按完以后从灯泡图可以看出那盏灯 是亮的?那盏灯 是灭的?
搜索更多相关主题的帖子: 技术 灯泡 开关 
2016-11-08 16:23
fanlongbo
Rank: 2
等 级:论坛游民
帖 子:1
专家分:20
注 册:2016-11-15
收藏
得分:20 
1首先布局选用GridView , 定义灯的对象 class Light {int number;  boolean isLight;   }
通过刷新gridView的适配的的数据来控制等的开关(adapter.notifiDatechang()  开关根据isLight控制  )   .

2算出按一次哪些灯的开关需要改变   规律:次数的倍数   定义次数为 int count;  可以遍历这五十个灯%count == 0的是符合条件的

List<Light> Lights = new List<Light>();  //总灯数 应该添加50 个灯number对应的1-50  代码就不写了

void changState(int count){    //按第n次需要改变的灯 只是当前这次不是累加
  
    for(int i = 0;i< Lights.size();i++){   
        Light light = Lights.get(i);
        int number = light.getNumber();
        if(number % count == 0){
            light.setIsLight(!light.getIsLight());
        }
    }
}
void getCountState(){   //按49次需要改变的
    for(int i = 0 ;i< 49;i++){
      changState(i);  
    }
}


3 通过getCountState() 方法后,Lights就是正确状态的bean,通过适配器的adapter 刷新下 就ok了  适配器需要根据字段 isLight 来判断是否显示


一些细节需要特殊处理,以上只是思路.


2016-11-15 15:39
wangdeyou86
Rank: 2
等 级:论坛游民
威 望:1
帖 子:33
专家分:39
注 册:2009-3-22
收藏
得分:0 
弄50个灯泡玩,好无聊哦
2017-04-27 07:30
快速回复:求解题思路
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015357 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved