2012年3月17日

求数对的最大值

摘要: package maxD_value;/*** 题目:在数组中,数字减去它右边的数字得到一个数对之差。* 求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11,是16减去5的结果。**/public class Test {//下面这个方法是从后往前遍历一遍,找出最小的值,然后用前面的值减去最小的值,并找出遍历中的最大数,则得到了结果。public static int maxValue_MethodOne(int array[]){int max=0,D_value;int n = array.length;int min = ar 阅读全文

posted @ 2012-03-17 23:43 c语言源码 阅读(291) 评论(0) 推荐(0) 编辑

写程序是为了解决问题

摘要: 对于一个专业的程序员来说,写代码不仅仅是写代码,而是在生产产品。仅仅是为了写代码而写代码那是在校学生。 程序是产品吗?只要你想靠软件赚钱,这就是一个产品。既然是产品,那么你写的代码最终是要解决问题。套用小平同志的一句话:不管高手还是菜鸟,只要能能解决问题就是好程序员。所以,作为一名程序员在学习编程技能的同时,要注重积累自己解决问题的经验。当然如果是一个高手,那么他肯定具备解决问题的能力,可是这种能力是否发挥出来就不一定了。 所以我们在写程序的时候,不要过于纠结程序的本身,而是通过深入研究程序的本身来更好的解决问题。 阅读全文

posted @ 2012-03-17 16:19 c语言源码 阅读(151) 评论(0) 推荐(0) 编辑

求两个数的和(不用+-*/)

摘要: 题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。 分析:这又是一道考察发散思维的很有意思的题目。当我们习以为常的东西被限制使用的时候,如何突破常规去思考,就是解决这个问题的关键所在。 看到的这个题目,我的第一反应是傻眼了,四则运算都不能用,那还能用什么啊?可是问题总是要解决的,只能打开思路去思考各种可能性。首先我们可以分析人们是如何做十进制的加法的,比如是如何得出5+17=22这个结果的。实际上,我们可以分成三步的:第一步只做各位相加不进位,此时相加的结果是12(个位数5和7相加不要进位是2,十位数0和1相加结果是1);第二步做进位,5+7中有进位 阅读全文

posted @ 2012-03-17 15:05 c语言源码 阅读(1336) 评论(0) 推荐(0) 编辑

Codeforces Round #112 (Div. 2) C Another Problem on Strings

摘要: codeforces上的很多题都需要好的想法才能做。#include<iostream> #define maxn 10000005 using namespace std; int n,i,k,s[maxn],sum[maxn],a[maxn]; // a[i]记录第i个是0或1,s[i]记录第前i个有几个1,sum[i]表示从头开始产生i个1的方法数 char st[maxn]; long long ans; int main() { cin >> k >> st; for(i=1;st[i-1]!=0;++i) a[i]=st[i-1]-48,s[i] 阅读全文

posted @ 2012-03-17 13:17 c语言源码 阅读(178) 评论(0) 推荐(0) 编辑

程序员有趣的面试智力题

摘要: 偶然间在网上看到几个原来没见过的面试智力题,有几个题目在国内流传相当广,什么n个人怎么分饼最公平,屋里的三个灯泡分别由哪个开关控制,三架飞机环游世界,用火柴和两根绳子测量45分钟之类的题目,火星得已经可以考古了,这里就不再说了。 1、考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。谁没有地方放置新的硬币,谁就输了。游戏的先行者还是后行者有必胜策略?这种策略是什么?答案:先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者刚才放的地. 阅读全文

posted @ 2012-03-17 12:00 c语言源码 阅读(414) 评论(0) 推荐(0) 编辑

导航