鱼C论坛

 找回密码
 立即注册
楼主: jerryxjr1220

[作品展示] python解一道有趣的智力题(开箱子)

[复制链接]
发表于 2017-7-7 13:10:59 | 显示全部楼层
看答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-7 13:29:37 | 显示全部楼层
  1. a = [0 for each in range(100)]
  2. for i in range(1,101):
  3.     ii = i
  4.     while i <= 100:
  5.         a[i-1] = 1 - a[i-1]
  6.         i += ii
  7. print(a)
  8. for each in a.copy():
  9.     if each == 1:
  10.         print('Box {} is open.'.format(a.index(each)+1))
  11.         a[a.index(each)] = 0
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-3 23:44:23 | 显示全部楼层
本帖最后由 shigure_takimi 于 2017-12-3 23:58 编辑
  1. #  关着为False,打开为True。
  2. boxes = [False for i in range(100)]
  3. for i in range(1,101):
  4.     for index in range(i-1,len(boxes),i):
  5.         boxes[index] = not boxes[index]
  6. print("Totally",sum(boxes),"boxes are opened!")
  7. for i in range(len(boxes)):
  8.     if boxes[i]:
  9.         print("box -", (i+1),"is opened!")

  10. #  Totally 10 boxes are opened!
  11. #  box - 1 is opened!
  12. #  box - 4 is opened!
  13. #  box - 9 is opened!
  14. #  box - 16 is opened!
  15. #  box - 25 is opened!
  16. #  box - 36 is opened!
  17. #  box - 49 is opened!
  18. #  box - 64 is opened!
  19. #  box - 81 is opened!
  20. #  box - 100 is opened!
  21. #  和自己半年前写的相比简洁多了。
  22. #  放了一段时间,前两天重新拾起来,却好像反而比以前进步了。
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-26 20:45:11 | 显示全部楼层
谢谢~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-26 20:55:48 | 显示全部楼层
想看
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-26 22:04:10 | 显示全部楼层
  1. '''
  2. 走廊上有100个关上的储物柜。有个人先是将100个柜子全都打开。接着,每数两个柜子关上一个。
  3. 然后,在第三轮时,再每隔两个就切换第三个柜子的开关状态(也就是将关上的柜子打开,将打开的关上)。
  4. 照此规律反复操作100次,在第i轮,这个人会每数i个就切换第i个柜子的状态。
  5. 当第100轮经过走廊时,只切换第100个柜子的开关状态,此时有几个柜子是开着的?分别是哪几个箱子?
  6. '''
  7. box=[0]*100
  8. for i in range(1,101):
  9.     for j in range(100):
  10.         if (j+1)%i==0:
  11.             if box[j]==1:
  12.                 box[j]=0
  13.             else:
  14.                 box[j]=1
  15. for i in range(100):
  16.     if box[i]==1:
  17.         print('第%d个箱子是开着的。'% (i+1))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-27 13:56:17 | 显示全部楼层
看一看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-31 11:12:35 | 显示全部楼层
66666666666
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-12 23:50:39 | 显示全部楼层
学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-22 22:10:08 | 显示全部楼层
回复
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-22 23:56:08 | 显示全部楼层
package practice;

import java.util.ArrayList;

class Box {
        boolean open;

        protected Box(boolean open) {
                this.open = open;
        }

        public boolean getStat() {
                return this.open;
        }

        public void shift() {
                this.open = !this.open;
        }
}

public class Main {

        public static void main(String[] args) {
                ArrayList<Box> al = new ArrayList<>(100);
               
                for (int i = 0; i < 100; i++) {
                        al.add(new Box(true));
                }

                for(int round=1;round<=100;round++) {
                        int j = 0;
                        while(j<100) {
                                al.get(j).shift();
                                j += round;
                        }
                }
               
                for(int i=0;i<al.size();i++) {
                        if(al.get(i).getStat()) {
                                System.out.print((i+1)+" ");
                        }
                }
               
        }

}
=================================
这是我用Java写的,结果不对。
大家帮忙看看错在哪里了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-9 17:27:26 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-4-15 20:42:34 | 显示全部楼层
0
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-12 19:26:31 From FishC Mobile | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-2-1 20:23:22 | 显示全部楼层
good
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-2-10 08:35:22 | 显示全部楼层
牛逼
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-2-10 10:07:05 | 显示全部楼层
厉害
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-2-10 19:05:08 From FishC Mobile | 显示全部楼层
不会,看看学习下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-10 19:40:31 | 显示全部楼层
题都读不清楚,哎
来凑热闹。。。。。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-8 21:18:23 | 显示全部楼层
hh

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-24 08:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表