水题水题~(非菜鸟勿入)解题报告

解题报告-by gyk___

A题(最大公因子):
    即求两个数n,m的最大公约数,主题代码如下:
  do{
   r=m%n;
   m=n;
   n=r;
  }while(r);
m即为所求的最大公因子,需要注意的是,输入的n和m的值的大小。


B题(童年生活二三事):
    找规律,然后打表:
 for(i=3;i<=41;i++)
  a[i]=a[i-1]+a[i-2];


C题(母牛的故事):
    运用斐波那契原理,第一头母牛每年都会生一头,出生的小牛到第四年开始,每年都会生出一头小牛,依照这个规律进行打表就可以了。
注意:当年牛的数量是前一年的数量加上三年前的牛的数量,即a[i] = a[i-1] + a[i-3]。


D题(手机短号):
    先定义一个12位的字符串,然后以字符串形式读取输入数据,先输出一个“6”,然后输出字符串后五位即可。


E题(素数判定):
    对x,y之间的数进行逐个判断,如果出现非素数,则跳出循环,输出sorry,否则输出ok。
素数判定参考函数:
 int comp(int n)
 {
     int i,flag=1;
      for (i=2;i<=sqrt(n);i++)
       if (n%i==0)
   {
    flag=0;
    break;
   }
      if (flag==1) return 1;
  else return 0;
 }


F题(阿基米德特性):
    此题有些同学可能用循环去做,这样会导致超时,其实只要求出b除以a的值,然后加1就行了(int k=m/n+1;)。
注意:此题只有一组输入数据。


G题(Elevator):
    输入以0结束:while(scanf("%d",&n),n)。对于输入的一组数据,依次进行处理,后面一个和前面的比较,大的就是上升,时间加楼层差乘以6,下降为楼层差乘以4,每次循环均加上5就可以了。


H题(GG 和MM):
    通过两点坐标和半径求出弧长(较短的那段),然后就是已知路程和速度求时间的简单计算题(输出保留一位小数)。建议所有数据直接用double类型,呵呵。


I题(GG's Single Day):
    瑞年的判断,定义一个变量r=3。碰到闰年加2,平年加1。
注意:闰年有一个规律是400年一个循环的。用这个条件优化,不然会超时。


J题(判断闰年):
    即判断能被400整除,或者能被4整除但是不能被100整除的数。


K题(平均数和标准差):
    求平均数时要注意:输入的是整形的数,求平均数时应该除以5.0;或者输入的时候直接把数定义为double类型。


H题(求两直线的夹角):
    用向量做,设向量A,B,则A*B=|A|*|B|*cos(p)(p为夹角),然后用反三角函数求夹角。
注意:上面求出来的是弧度值,要转换成角度值,π最好定义为acos(-1),这样精度高。


为解题报告打分
暂时不评分

★★
★★★
★★★★
★★★★★
发表您的评论(若贴AC代码或发表禁止言论等违禁行为将被删除并扣除积分)

|返回 |   | 转到页头|
Copyright @ 2008-2024(浙ICP备2022001332号), TZOJ. All Rights Reserved.