上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 37 下一页
摘要: 解题报告:这题我觉得题目有一个没有交代清楚的地方就是关于横线的字符的宽度的问题,题目并没有说,事实上题目要求的是在保证下面的圈高度不小于上面的圈的高度的情况下,横线的宽度就是等于下面的圈的高度。 1 #include 2 void outplay1(char d,int kuan,int n) { 3 while(kuan--) 4 printf(" "); 5 while(n--) 6 printf("%c",d); 7 puts(""); 8 } 9 void outplay2(char d,int kuan,int n,int 阅读全文
posted @ 2013-08-18 09:40 xiaxiaosheng 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 解题报告:可以说是一个纯数学题,要用到二元一次和二元二次解方程,我们假设[a,b]这个区间的所有的数的和是N,由此,我们可以得到以下公式:(b-a+1)*(a+b) / 2 = N;很显然,这是一个二元一次方程,如果可以解出这个方程里的a,b就可以了,N是已知的,那么可以怎么一个公式怎么解二元方程呢?这里有两种方法可以选择,第一种是可以枚举a = 1,2,3.....,一直枚举到N/2,a是不可能大于N/2,这个你可以自己证明一下,但是这样做的缺点就是数据量还是太大了,N/2任然达到了10的八次方级别,所以这种方法不行(我一开始就是用这种枚举的),然后就是第二种,很明显,我们可以看到,a到b的 阅读全文
posted @ 2013-08-17 21:23 xiaxiaosheng 阅读(610) 评论(0) 推荐(0) 编辑
摘要: 解题报告:算利息的,不过一开始格式控制符里面少写了一个%lf,一直没看到,愣是没找到错误,唉! 1 #include 2 3 int main() { 4 int T; 5 scanf("%d",&T); 6 while(T--) { 7 double Y,Q,e,f,g,ans1,ans2; 8 scanf("%lf%lf%lf%lf%lf",&Y,&Q,&e,&f,&g); 9 e/=100.0,f/=100.0,g/=100.0;10 double x1 = Y*(1.0 + e*(Q/365.0). 阅读全文
posted @ 2013-08-16 22:02 xiaxiaosheng 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 解题报告:最多有8种学分的课,然后每种学分的课最多有10门,问要选学分为n的课一共有多少种选法,注意学分相同的课之间没有区别。这题暴力可过,我用了8层循环,就简单了。听说可以用母函数,但没学过,看一下。 1 #include 2 #include 3 #include 4 #include 5 us... 阅读全文
posted @ 2013-08-15 14:44 xiaxiaosheng 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 解题报告:求要将所有的墙弄成一样的高度最少需要移动多少块砖,水题。不过还要注意一下格式,是两个实例时间有空行,不是每个测试数据后面都有空行。 1 #include 2 int bricks[51],n,sum,eve,tot; 3 int main() { 4 bool flag = 0; 5 while(scanf("%d",&n),n) { 6 tot = sum = 0; 7 for(int i = 0;i 0)14 tot += (eve-bricks[i]);15 if(flag)16 p... 阅读全文
posted @ 2013-08-15 09:03 xiaxiaosheng 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 解题报告:求两个点之间的最安全的路线的安全值是多少。就是一个最短路的题,要注意的是这题用弗洛伊德过不了,一定要用地杰斯特拉,但是我还有一个不懂的地方,为什么按照我的做法,如果不把每次走过的点标记掉的话,总会选到重复的点,而且如果只标记上一次走过的和起点不重复走的话,还是TLE,求大神。 1 #inc... 阅读全文
posted @ 2013-08-14 23:16 xiaxiaosheng 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 解题报告:给一个班的学生的分数排序,然后判断Jack在他们班级的排名是多少,并且有如下规定,若多个人的分数相同,则他们的排名也 是相同的。说白了就是问这个班上分数比Jack高的人数有多少个,如果有n个,则输出n+1。由于分数的范围只有0到100,我们可以定义一个数组Mark[105],然后Mark[i]存的是分数为i的人数,这样就可以了,输入结束之后,从100到0扫一遍,就是了。 1 #include 2 #include 3 int M[105]; 4 int main() { 5 int num1,num,mark,x; 6 while(scanf("%d",& 阅读全文
posted @ 2013-08-14 22:06 xiaxiaosheng 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 解题报告:输入一个n,后面紧跟着输入n个数,输入的这n个数中,除了有一个数的个数为奇数外,其它的数的个数都是偶数个,现在要你找出这个个数为奇数的这个数。看起来好像很简单的样子,不过,这题的重点不在这里,看下内存限制就知道了,只有1024KB,也就是1M,而n的范围是1000000,输入的数的范围更是在int以内,所以这题其实考的就是一个内存优化的问题。当然,这让我们很自然的联想到中数据结构-动态链表,要多少分配多少,这样就可以最大限度的减少不必要的内存消耗。很久没写动态链表了,竟然调试了很久。不过在discuss里面看到有位神牛的做法,顿时就感觉弱爆了,他的代码只有几行,原理就是利用C语言里面 阅读全文
posted @ 2013-08-14 21:32 xiaxiaosheng 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 解题报告:输入一个小于1的小数,让你把这个数转化成分数,但注意,输入的数据还有无限循环的小数,循环节用一对括号包含起来。之前还没有写过小数转分数的题,当然如果没有循环小数的话,应该比较简单,但是这题要求有循环小数。其实这里要用到一个很巧妙的方法,这里以0.4444444....这个无限循环小数来作为例子,0.444...*10 - 0.444.... = 4,又有左边的0.444...可以提出来,所以得到:0.444....(10-1) = 4;即0.444....*9 = 4,所以无限循环小数就可以表示为4/9,如果循环节前还有数字的话,只要把前面的那部分分离出来,分别转化,然后把两个分数加 阅读全文
posted @ 2013-08-14 17:47 xiaxiaosheng 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 解题报告:规定数字1和数字2是Friend number,然后规定,若a和b是Friend number,那么a*b+a+b也是Friend number,输入一个数,让你判断这个数是否是Friend number。Friend number = (2^x)*(3^y)-1;如果判断出某个数能满足这个关系,则这个数就是Friend number。 1 #include 2 const int MAX = 2 MAX || f)14 break;15 for(int j = 0;j= MAX || c1*c2 >= MAX)17 ... 阅读全文
posted @ 2013-08-14 16:25 xiaxiaosheng 阅读(213) 评论(0) 推荐(0) 编辑
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 37 下一页