UVA11549计算机谜题 |
【题目描述】: 有一个计算器,只能显示n位数字,给定初始数字k和位数n,做无数次的k^2运算,记录每次的k^2的前n位数字,并将这个新的数字做为下次平方的对象。记录在这无数次运算中,出现的最大的n位数字。 |
【思路分析】: 这道题目在经验之下,应该看出是存在循环节的,反而观之,在大学生数学水平下,不可能直接找到结果的分布。 所以问题就转化成了一道模拟题,因为以前没用过set,所以写了这道比较水的题。 【注意事项】: 循环结不一定又回到初始的k,这点我想错了; 显示前n位不是后n位,所以传统的取模运算失效,应该按位读取每个数,才方便运算; 【重点】:对过程的模拟是难点 |
【完整代码】: 1 #include
|
【拓展学习】: set的内部函数原理和使用
【little from】: 平衡二叉树实现,所以查找、插入、删除都是O(log2(N)) begin() ,返回set容器的第一个元素 end() ,返回set容器的最后一个元素 clear() ,删除set容器中的所有的元素 empty() ,判断set容器是否为空 max_size() ,返回set容器可能包含的元素最大个数 size() ,返回当前set容器中的元素个数
|