摘要: #include<stdio.h>intf[15];booljos(int,int);intmain(){inti,j,k,m,n;for(i=1;i<14;i++)for(j=i;;j++)if(jos(i,j)){f[i]=j;break;}while(scanf("%d",&n),n)printf("%d\n",f[n]);return0;}booljos(intn,intm)//n代表每一边的人数,m代表所报的数{intstart=0,end=n-1,killed;inti,j;boolflag=true;for(i=2 阅读全文
posted @ 2011-05-08 14:56 yansirfuture 阅读(663) 评论(0) 推荐(0)
摘要: 先看对数的性质,loga(b^c)=c*loga(b),loga(b*c)=loga(b)+loga(c);假设给出一个数10234432,那么log10(10234432)=log10(1.0234432*10^7)=log10(1.0234432)+7;log10(1.0234432)就是log10(10234432)的小数部分.log10(1.0234432)=0.01006374410^0.010063744=1.023443198那么要取几位就很明显了吧~先取对数(对10取),然后得到结果的小数部分bit,pow(10.0,bit)以后如果答案还是<1000那么就一直乘10。注 阅读全文
posted @ 2011-05-08 14:26 yansirfuture 阅读(225) 评论(0) 推荐(0)
摘要: 给大家提供一个资料http://zhidao.baidu.com/question/15843599.html众所周知,有限小数是十进分数的另一种表现形式,因此,任何一个有限小数都可以直接写成十分之几、百分之几、千分之几……的数。那么无限小数能否化成分数?首先我们要明确,无限小数可按照小数部分是否循环分成两类:无限循环小数和无限不循环小数。无限不循环小数不能化分数,这在中学将会得到详尽的解释;无限循环小数是可以化成分数的。那么,无限循环小数又是如何化分数的呢?由于它的小数部分位数是无限的,显然不可能写成十分之几、百分之几、千分之几……的数。其实,循环小数化分数难就难在无限的小数位数。所以我就. 阅读全文
posted @ 2011-05-08 13:41 yansirfuture 阅读(209) 评论(0) 推荐(0)
摘要: 我和这题有缘吗?知道三个点了 就可以求出直线和抛物线的方程然后就是非常简单的二重积分求面积 ^_^用抛物线的顶点公式y=a(x-x1)^2+y1外加另一个点x2算出a,然后对抛物线公式求积分,用积分的公式算出抛物线和x轴的面积,减去梯形的面积就行。#include"stdio.h"intmain(){intn,i;doublee,f,g,h,l,r,a,b,c,k,m,area;scanf("%d",&n);for(i=0;i<n;i++){scanf("%lf%lf",&e,&f);scanf(&quo 阅读全文
posted @ 2011-05-08 13:36 yansirfuture 阅读(126) 评论(0) 推荐(0)
摘要: 这个题目的思路,是这样的我们假设数字A是这样的一个数字 a*(10^(k+1)) + b*(10^k) + c 其中 a 为任意数字,b为去掉的那一位数字,范围 [0,9] 的整数,c<10^k 。则去掉b后的数字B为 a*(10^k) + c ,而A+B的值可以用一下式子表示 (11*a+b)*(10^k) + 2*c 这个值等于 n , 我们枚举 k的值,从0到10 ,对于取定的k值,显然有一下对应 2*c = n%(10^k) 或者 2*c = n%(10^k) + 10^k ; 可以求出整数c的值,然后枚举 b的值,来确定a的值,使得a的值为整数 /..计算中可能会出现重复的结果 阅读全文
posted @ 2011-05-08 13:31 yansirfuture 阅读(382) 评论(0) 推荐(0)
摘要: 题目的大意是将一个数分解成素数的乘积。求最大的那个素数在素数表中的位置。与 FZU.1012(http://acm.fzu.edu.cn/problem.php?pid=1012)这一题分解素数的方法与原理相似。用prime[i]来存放i这个数字分解后最大素数的位置。2是素数,所以prime[2]=1;再先将所有2的倍数的prime[]都更新为1.即prime(4,6,8,10)都为1.又因为6又是3的倍数,3是更大的素数,所以将prime[6]更新为3.依此类推……1#include<stdio.h>2#defineN10000013intprime[N];4intmain()5 阅读全文
posted @ 2011-05-08 12:52 yansirfuture 阅读(320) 评论(0) 推荐(0)
摘要: 数学太差,转的。。题目意思很清楚,不用多说,公式是 p+q-gcd(p,q)举个例子:4 6,用一个矩形来切割,如下图蓝色点线表示4等分线 红色实线表示6等分线,让蛋糕(矩形)可以平分为4份需要(4刀)和6份需要(6刀),总共需要10刀,但因为其中有两条线是重合的,没有必要切两次,所以应该减掉这两刀,就只剩下10-2=8刀了。对于任何p和q,他们重合的线的数量就是他们的GCD,所以就~~~~1#include<iostream>23usingnamespacestd;45intgcd(inta,intb){6returnb?gcd(b,a%b):a;7}8intmain(){9in 阅读全文
posted @ 2011-05-08 10:43 yansirfuture 阅读(329) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1713输入 a/b c/d转换后变成:(a*d)/(b*d) 和 (c*b)/(b*d)按照题意,就是在转相同的圈子(b*d圈)时,各自需要时间a*d和c*b.所以,这里把a*b与c*b的最小公倍数求出来就可以了。这样。求出的最小公倍数lcm再除以(b*d)就是所求的周期。(http://www.wutianqi.com/)但是,这里要求若无法整出,则写出分数形式,这时,就可以求lcm与(b*d)的最大公约数gcd,求出gcd后与(b*d)比较,若相等,则证明可以整除~~~~1#include<cstd 阅读全文
posted @ 2011-05-08 10:15 yansirfuture 阅读(552) 评论(2) 推荐(0)