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等

策略:将所有字符按其规定的大小对应转化为字符

原文地址:https://www.cnblogs.com/wshyj/p/6606825.html