PTA 7-67 书虫

PTA 7-67 书虫

(仅供参考,题有问题)

分数 10
作者 黄龙军
单位 绍兴文理学院

小明买了10本一样厚的书,按编号从1到10相邻着一起放在书架上,不巧其中1本跑进了1只书虫。这只书虫也怪,总是从某本书的第一页跑到另一本书的最后一页。每本书的厚度(不包括封面和封底)为v,每本书封面和封底厚度都是c,求书虫从第s本书开始爬到第t本书所爬过的距离。(书本序号从左往右从1开始编号)

输入格式:
测试数据有多组,每组4个整数v,c,s,t,含义如上,输入到文件尾结束。

输出格式:
对于每组测试,在一行上输出书虫所爬过的距离。

输入样例:
10 1 1 2
10 2 5 2
输出样例:
2
52

提示:
按一般习惯,放书时按编号从小到大,从左往右竖立,封面同向。

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

代码:
(仅供参考,题有问题)

#include <stdio.h>
int main(){
    int cover, book_cover, frist_book, last_book, sum;    //定义封面或者封底厚度,书的厚度,第几本开始,第几本结束
    while(scanf("%d %d %d %d", &book_cover, &cover, &frist_book, &last_book) != EOF){//题目要求测试多组数据
        if(frist_book < last_book){   //按照顺序爬的书
            //封面厚度*2代表前后,加上书的厚度
            sum = (last_book - frist_book) * 2 * cover + (last_book - frist_book - 1) * book_cover;   
        }else if(frist_book>last_book){ //没有按照顺序爬的书
            //封面厚度*2代表前后,加上书的厚度
            sum = (frist_book-last_book) * 2 * cover + (frist_book - last_book + 1) * book_cover;
        }
        printf("%d\n", sum);
    }
    //题目有问题,仅供参考
    return 0;
}

解题思路:
step1:从题目中提取出书如何摆放,书的内容厚度和书封面、封底厚度,书虫的爬行轨迹
step2:书虫的爬行方式,例如:按照顺序爬和不按照顺序爬
step3:根据相关信息计算距离

归属知识点:
运用宏EOF检查是否处理到文件尾,EOF是一个宏,表示输入流的结束,一般定义为-1,判断文件结束的标志;
条件语句

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值