本文主要是介绍小鱼的航程(改进版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
每日一道算法题之小鱼的航程(改进版)
- 一、题目描述
- 二、思路
- 三、C++代码
一、题目描述
题目来源:洛谷
有一只小鱼,它平日每天游泳 250 公里,周末休息(实行双休日),假设从周 x 开始算起,过了 n 天以后,小鱼一共累计游泳了多少公里呢?
C++程序要求输入输出格式如下:
输入:
输入两个正整数 x,n,表示从周 x 算起,经过 n 天。
输出:
输出一个整数,表示小鱼累计游泳了多少公里。
示例如下:
输入:3 10 输出:2000
二、思路
这道题有点像智力题,关键在于如何处理天数和路程问题。一开始想想了好久,没什么思路,后面就在想是不是可以通过循环去解决,为什么会想到循环呢?因为天数里套着一周七天,周末休息,于是尝试通过for循环来试试,循环的条件就是不断抵达输入的天数,消耗掉每一天,再通过for循环里面的if去判断是该休息还是去游泳?主要有以下几种情况:
- 当x不为6,也不为7时,路程加250公里。
- 当x为7时,小鱼休息,那么这天跳过,自动到周一,所以令x=1。n++进入下一天。
- 当x为6时,x++;表示跳过这天。n++进入下一天。
三、C++代码
#include<bits/stdc++.h>
using namespace std;//小鱼的航程(改进版)int main(){long int n,total=0; //total是路程总和int x; //从周x开始cin>>x>>n; for(int i=1;i<=n;i++){if(x!=6&&x!=7)total+=250; //若不是周6或周7则加1天的行程250if(x==7){ x=1; }else{x++; //计算日期,若是周7则回到1,若不是周7则日期往后推1}}cout<<total; //输出路程总和return 0;}
这篇关于小鱼的航程(改进版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!