摘要: 题意:在他走第 i 次的时候,只按动可以被 i 整除的位置(位置编号为 1 到 n )上的开关。判断最后一个灯泡的最终状态。解题思路:令d(n) 为自然数 n 的因子个数,不及重复的因子。当且仅当 n 为完全平方数时,d(n) 为奇数;这是因为 n 的因子是成对出现的,也即当 n=a*b 且 a!=b 时,必有两个因子 a 、b;只有 n 为完全平方数,也即当 n=a2时,才会出现 d(n) 为奇数的情形。注意:n 的范围:n<=232-1,n 必须定义为 unsigned int 型。View Code 1#include<iostream>2#include<cma 阅读全文
posted @ 2012-02-24 22:05 笑巧 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 解题思路:这道题题意很明确,就是从整数 n 开始,如果 n 是偶数,把它除以 2;如果 n 是奇数,把它乘 3 加 1。用新得到的值重复上述步骤,直到 n=1 时停止。计算 i 到 j 之间的整数中,循环节长度的最大值。由于n 是不小于1000 000的整数,所以用递归虽然很方便,但是容易超时,后来改为递推仍然超时。其实想想有的数会重复计算,因此可以用数组保存下来,也就是我们通常所说的打表方法。注意:输出的整数 m 与 n ,不一定是 m<n,所以要做交换,使其满足条件。由于要求输出这两个整数,所以刚开始要保存下来。另外请注意编译环境问题,UVa中不支持__int 64 类型,支持 lo 阅读全文
posted @ 2012-02-24 17:23 笑巧 阅读(384) 评论(0) 推荐(0) 编辑