摘要: 提交人:侯建鹏提交日期:2012/4/161001 Least Common Multiple 这道题求解的是几个数的最小公倍数,我的想法是先求前两个数的最小公倍数,再求的得到的这个数和第三个数的最小公倍数,以此类推。求解两个数a和b的最小公倍数d的方法:1、 用辗转相除法求出这两个数的最大公约数,记为c。2、 则最小公倍数d=(a/c)*b。特别注意的问题:为什么d=(a/c)*b而不是d=(a*b)/c? 因为a和b都是32bit的数字,如果先执行a*b很可能会超出32bit的存储范围而发生错误,所以先除再乘。(当然,如果你用的是__int64,可以忽略这个问题)#include<s 阅读全文
posted @ 2012-04-16 21:34 LETTers 阅读(152) 评论(0) 推荐(0) 编辑
摘要: LETTers比赛第二场解题报告:提交人:周杰第一题:典型的威佐夫博奕,具体解法请大家参考程序中的吧,有现成的公式,有兴趣的同学可以试试去查下证明过程。AC程序之一:#include <stdio.h>#include <math.h>int a, b, temp, k;int result;int main (int argc, char* argv[]) { while (scanf("%d %d", &a, &b) != -1) { if (a > b) { temp = a; a = b; b = temp; } k = 阅读全文
posted @ 2012-04-15 16:37 LETTers 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 解题报告提交人:蔡驰宇提交日期:2012.04.11第1题解题报告题目描述题目提供的Fibonacci的递推公式,以及相应的初值,要求第n个Fibonacci数。题面建模由Fibonacci递推公式和测试数据可知int型与_64int型数据无法满足题目求解要求,因而要使用高精度算法,即为大数问题,利用数组来进行计算。解题要点字符串与数组之间的转换,大数数组的基本运算方法。时空开销分析特别说明程序#include <iostream>#include <string>using namespace std;int n;int f[5][2100];void init(){ 阅读全文
posted @ 2012-04-11 21:11 LETTers 阅读(222) 评论(0) 推荐(0) 编辑