随笔分类 -  100-0算法

OpenJudge计算概论-取石子游戏
摘要:OpenJudge计算概论-取石子游戏【函数递归练习】/*======================================================================取石子游戏总时间限制: 1000ms 内存限制:65536kB描述有两堆石子,两个人轮流去取.每次取的时候,只能从较多的那堆石子里取,并且取的数目必须是较少的那堆石子数目的整数倍.最后谁能够把一堆石子取空谁就算赢.比如初始的时候两堆石子的数目是25和725 7 --> 11 7 --> 4 7 --> 4 3 --> 1 3 --> 1 0 选手1取 选手2取 选手1取 阅读全文

posted @ 2013-11-29 20:35 华山青竹 阅读(2142) 评论(0) 推荐(0) 编辑

cantor数表
摘要:/*============================================================【本题是NOIP1999普及组复赛第一题。】现代有理数的一个著名的证明之一是Georg Cantor证明了有理数是可以枚举的。他用下面的数表来证明这一命题:1/1 1/2 1/3 1/4 1/5 …2/1 2/2 2/3 2/4 …3/1 3/2 3/3 …4/1 4/2 …5/1 …我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…要求编写程序,输出按以上编号方式编号得到的第N项。输入格式:仅一行,一个整数N。... 阅读全文

posted @ 2013-11-22 01:16 华山青竹 阅读(462) 评论(0) 推荐(0) 编辑

斐波那契数列
摘要:/*斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列被定义如下:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)现在问题是:输入n,0≤n ≤1000,计算该数列第n项的值。*/#includeusing namespace std;int main(){ int n,a=0,b=1,c,i; cin>>n; if(n==0||n==1) cout<<n<<endl; for(i=2;i<=n;i++) { c=a+b; ... 阅读全文

posted @ 2013-11-22 01:15 华山青竹 阅读(250) 评论(0) 推荐(0) 编辑

3n+1问题
摘要:/*首先,定义这样一个函数f(n),当n为偶数时,f(n)=n/2;当n为奇数时f(n)=(3*n+1)/2。角谷猜想是说:对于任意给定的整数n,计算f(n),f(f(n)),f(f(f(n))),……,若干步后总会得到1.我们现在问题是:给定一个n,求出数字序列中第一次出现1的步数。*/#includeusing namespace std;int main(){ long n,i; cin>>n; if(n<1) return 0; i=0; while(n!=1) { if(n%2==0) {n=n/... 阅读全文

posted @ 2013-11-22 01:13 华山青竹 阅读(272) 评论(0) 推荐(0) 编辑

OpenJudge 计算概论1007:点评赛车
摘要:总时间限制: 1000ms 内存限制: 65536kB描述4名专家对4款赛车进行评论1)A说:2号赛车是最好的;2)B说:4号赛车是最好的;3)C说:3号赛车不是最好的;4)D说: B说错了。事实上只有1款赛车最佳,且只有1名专家说对了,其他3人都说错了。请编程输出最佳车的车号,以及说对的专家。输入无输入。输出输出两行。第一行输出最佳车的车号(1-4中的某个数字)。第二行输出说对的专家(A-D中的某个字母)。样例输入(无)样例输出1A提示样例输出只是格式说明,并非正确答案解析:经过人工推理,答案是3号车,D号专家,可以直接写如下代码:#includeint main(){printf(&quo 阅读全文

posted @ 2013-11-22 00:48 华山青竹 阅读(653) 评论(1) 推荐(0) 编辑

证明:平面内有5个整点,必有两个点连线的中点为整点【本资源整理自网络】
摘要:如果平面上任取n个整点(即横纵坐标都是整数),则其中必定存在两个点a和b,使得a和b之间连线的中点也是整点。那么n至少是多少呢?答案是5。分析过程如下:我们把各个坐标分量都是整数的点称为格点或整点。鸽笼原理是指:把m个元素分为n类,如果m>n,则至少有一个类中至少有两个元素。该原理也可叙述为:把2m+1个元素分为两类,则至少有一个类中至少有m+1个元素。命题:在平面上任意五个格点中,必有两点的中点亦为格点。我们引述证明如下:给出平面上任意五个格点,设它们的坐标为(ni,mi),ni和mi为整数,i=1,2,3,4,5。把n1,n2,n3,n4,n5分为偶数和奇数,据鸽笼原理,至少有3个都 阅读全文

posted @ 2013-11-15 15:42 华山青竹 阅读(2194) 评论(0) 推荐(0) 编辑

欧几里德算法的证明
摘要:欧几里德算法又称辗转相除法,用于计算两个正整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) (a>b 且a mod b 不为0)证明:a可以表示成a = kb + r,则r = a mod b假设d是a,b的一个公约数,则有d|a,d|b 阅读全文

posted @ 2013-11-15 15:23 华山青竹 阅读(660) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示