摘要: AuthorIgnatius.L下面解答copy以下链接(并非本人想出来的):http://blog.163.com/lyt9469@126/blog/static/17044235820108203120482/该解答很好、很强大/(^o^)/~参考解答:源代码及简单分析:把加法变为幂运算这里先给出2个例子,等会再结合题目分析:第一种:有1克、2克、3克、4克的砝码各一 枚,能称出哪几种重量?每种重量各有几种可能方案?考虑用母函数来接吻这个问题:我们假设x表示砝码,x的指数表示砝码的重量,这样:1个1克的砝码可以用函数1+x表示,1个2克的砝码可以用函数1+x2表示,1个3克的砝码可以用函数 阅读全文
posted @ 2013-05-07 20:48 90后程序媛 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 解决本题的关键:通过公式条件:F(0)= 7, F(1) = 11,F(n) = F(n-1) + F(n-2) (n>=2). 找到规律。由同余式的基本性质:(1)自反性:a = a( mod m)。以及同余式的四则运算法则:(1)如果 a =b( mod m)且 c = d( mod m),则 a +c = (b + d)( mod m)。可知,F(n) = F(n) ( mod m) = ( F(n-1) +F(n-2) )( mod m)。根据题目已知条件:Print the word"yes" if 3 divide evenly into F(n);Pri 阅读全文
posted @ 2013-05-07 20:44 90后程序媛 阅读(323) 评论(0) 推荐(0) 编辑
摘要: View Code #include<iostream>#include<algorithm>using namespace std;#define max 100int a[max];int y(int a,int b) //求最大公约数{ if(b==0) return a; else return y(b,a%b);}int b(int a,int b) // 求最小公倍数{ return a/y(a,b)*b;}int main(){ int t,n;// freopen("E:\\test.txt","r",stdin) 阅读全文
posted @ 2013-05-07 20:36 90后程序媛 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题意就是输出1000000这个范围内的数字,这个数不存在一个数和他的俩位数相加等于它本身。例如3不存在。但4就等于2+2, 10等于5+5, 11等于10+1+0, 12等于6+6;就是这个意思了。但9就不存在这么一个数。View Code #include <iostream>using namespace std;const int N = 1000001; //存放相加后的数字bool str[1000010]; void fac(int n){ int sum = n; while(n) { sum+=n%10; n/=10; } str[sum] = 1;}int mai 阅读全文
posted @ 2013-05-07 19:42 90后程序媛 阅读(257) 评论(0) 推荐(0) 编辑