蓝桥杯Problem J: 武功秘籍

问题及代码:

Problem J: 武功秘籍

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 2394   Solved: 902
[ Submit][ Status][ Web Board]

Description

小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。 
他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上 。
小明只想练习该书的第a页到第b页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走? 
 

Input

有多组测试实例,输入小明想要练习的起始页a和末尾页b。(a

Output

输出小明最少要带走的纸张,每行对应一个输出结果。

Sample Input

81 92

Sample Output

7

/*烟台大学计算机学院
作者:景怡乐
完成时间:2017年4月2日
*/
#include 
int main()
{
 int a[20],b[20],c[20];
 int i;
 while(scanf("%d%d",&a[i],&b[i])!=EOF)//多组数据输入
{
c[i]=b[i]/2-a[i]/2+1;
 printf("%d\n",c[i]);
}
return 0;
}
由题目要求可以得出第1页在一张纸上,此后都是每两张在同一页上。

这段程序是当时写的,虽然结果对了,交OJ也没啥问题,可我现在自己也解释不清楚。

#include 
int main()
{
int m,n,a;
while(scanf("%d%d",&n,&m)!=EOF)
{
    a=m-n+2;
    a=a/2;//有两页在同一张纸上
    if(n%2!=0&&m%2==0)//当起始页是奇数,而终止页是偶数时,就相当于多撕下一页。
        a++;
printf("%d\n",a);
}
return 0;
}
这段代码相对比较完善一点。

当起始页和终止页都是偶数时,直接得到需要撕下的页数。

当起始页时偶数,终止页是奇数时,除二得到整型数。


你可能感兴趣的:(蓝桥杯Problem J: 武功秘籍)