9-4课 enum枚举法:
给我留下深刻印象的就是我去台上展示用枚举变量给int整形变量赋值,这个轻而易举就可以做到。但是老师要求我反过来,把一个int整形变量赋值给一个枚举变量就把我顿时难住了,其中需要强制类型转换,但是我在台上没有做出来,我的室友上台教了我方法,我想我不会再忘记如何使用强制类型转换了。转换代码如下:
刚开始写一个枚举然后打出来一个值:
错误尝试:
知道了Tu的值是1然后我们想把Tu的值变成10
实验结果
课堂练习题目:
有一个盒子里有五种颜色不同的球 红黄蓝绿粉五种,敢问有多少种方法可以去除不同颜色的球?
思路:利用课堂上讲解的枚举法来定义五种颜色,对应的数值也就是 0,1,2, 3,4 ;我们组选择了一种暴力方法选出所有可能再在里面选择不重复的条件。利用for循环中 i 来表示当前的颜色。
当我们拿第一个小球的时候有五种可能,
取出第二颗小球的时候 需要保证不和第一个颜色重合那么翻译成逻辑语句就是 j != i
取出第三个 就要保证不能和前面两个重色,于是有了 k != j && k != i
当时我们小组有一个算法问题就是我们没有考虑到取出一个小球以后盒子里面就会少一个,所以循环次数应该是依次-1的后来其他组同学发言点出了这个问题我们立刻改了代码,程序的时间复杂度降低了。
利用预先定义好的枚举变量的值是和颜色一一对应,switch语句把i,j,k传进来的值转义成颜色,给人呈现出当前取出球的方法
完整代码如下
运行截图: