P1424 小鱼的航程(改进版)

题目

描述

有一只小鱼,它平日每天游泳 250 公里,周末休息(实行双休日),假设从周 x(1≤x≤7) 开始算起,过了 n(n≤10^6) 天以后,小鱼一共累计游泳了多少公里呢?

输入格式

输入两个整数x,n(表示从周x算起,经过n天)。

输出格式

输出一个整数,表示小鱼累计游泳了多少公里。

输入输出样例

输入 输出
3 10 2000

解答

解法一

循环n天加起来

#include<iostream>
using namespace std;

int x,n,all;
int main()
{
    all=0;
    cin>>x>>n;
    for(int i=0;i<n;i++)
    {
    	if(x<6)
    		all+=250;
        x++;
	    if(x==8)
	        x=1;

    }
    cout<<all;
    
    return 0;
}

解法二

判断有几天乘起来

思路1:

#include<iostream>
using namespace std;

int x,n,c;
int main()
{
    cin>>x>>n;
    
    c=(n/7)*5;
    
    if(x>6 && n%7>0)
    	c+=n%7-1;
    else if(x>5 && n%7>1)
    	c+=n%7-2;
    else if(x>4 && n%7>2)
    	c+=n%7-2;
    else if(x>3 && n%7>3)
    	c+=n%7-2;
    else if(x>2 && n%7>4)
    	c+=n%7-2;
    else if(x>1 && n%7>5)
    	c+=n%7-2;
    else
    	c+=n%7;
    
    cout<<c*250;
    return 0;
}

思路2:

#include<iostream>
using namespace std;

int x,n,c;
int main()
{
    cin>>x>>n;
    
    c=(n/7)*5;
    
    if(n%7 > (7-x) && x>6)
    	c+=n%7-1;
    else if(n%7 > (7-x))
    	c+=n%7-2;
    else
    	c+=n%7;
    
    cout<<c*250;
    return 0;
}
上一篇:ORACLE ASM diskgroup在主机重启后启动失败


下一篇:SQL server数据库中的DateTime类型出现的问题