7-67 书虫
小明买了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
提示:
按一般习惯,放书时按编号从小到大,从左往右竖立,封面同向。
#include <stdio.h>
int main() {
int v, c, s, t;
while (scanf("%d %d %d %d", &v, &c, &s, &t) != EOF) {
if (s < t) {
printf("%d\n", (t - s - 1) * v + (t - s) * 2 * c);
} else if (s==t) {
printf("%d\n",s*v+2*c);
} else {
printf("%d\n", (s - t + 1) * v + (s - t)*2 * c);
}
}
}
思路
- 题目感觉有点绕,主要就是分从前往后和从后往前两种情况,然后进行数学加减乘除运算列出式子输出即可