首页 > 代码库 > OJ题归纳
OJ题归纳
1、求最大公约数
利用辗转相除法求最大公约数
int gcd(int a,int b) { int c,r; if(a<b){c=a;a=b;b=c;}
if(b==0) return a; r=a%b; while(r) { a=b;b=r;r=a%b; } return b; }
2、求最小公倍数
数学知识:由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积.即(a,b)×[a,b]=a×b.所以,求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用上述公式求出它们的最小公倍数.
3、求多个数的最小公倍数
求几个自然数的最小公倍数,可以先求出其中两个数的最小公倍数,再求这个最小公倍数与第三个数求最小公倍数,依次求下去,直到最后一个为止.最后所得的那个最小公倍数,就是所求的几个数的最小公倍数.
4、题目:对于方程 8*x^4+7*x^3+2*x^2+3*x+6=Y 给定一个实数Y(|Y|<=1000000000),求方程的解 x=k,其中0<=k<=100,若方程无解,则输出“No solution!”(不含引号)若方程存在一个解 x=k 满足 0<=k<=100,则输出“x = k”(不含引号,k 为方程的解,精确 到小数点后 4 位) 否则,输出“No solution!”(不含引号)
本质问题是求解方程组
求解策略:使用二分法 从两侧逼近答案
5、保留大数的后几位(比如四位)
for(i=0;i<=n;i++) { ans=ans*A; ans=ans%10000; }
6、http://blog.csdn.net/xiexievv/article/details/6831194
printf格式化详解
7、题目
Alice 和 Bob 玩一个游戏,一堆扑克,2~10,J,Q,K,A,共 13 种牌,每种 4
张,规定牌力大小为:3~10 正常点数大小比较,10<J <Q<K<A<2.一共一
个回合,每个回合每人抽一张牌,牌力大者胜
难点:如何比较 不好比较的2,10,A等
策略:将所有字符按其规定的大小对应转化为字符
OJ题归纳