3519 - 开荒专用闹铃

随着《魔兽世界-德拉诺之王》的正式上线,这个版本加入了要塞等系统,开放了德拉诺大陆,艾泽拉斯的勇士们又开始了新一轮的开荒之旅。

我们的刘安智同学也不甘寂寞的加入了一个开荒团……额但是直到他们要进军德拉诺了,安智同学才发现,原来这个团的团员几乎都是留学生,组队无论是打副本还是屠城存在着严重的时差问题。

但是公会活动不能不参加,刘安智同学便采用了一个闹铃,让它叫醒自己。

于是呢,他按照以下三种规则开始设置闹铃(定个闹铃还按照规则,有病吧):

1.&nbsp;从<span>00</span><span>:</span><span>00</span><span>开始,每</span><span>15</span><span>分钟设置一个闹铃(这要设置多少个,用个</span><span>for</span><span>循环一次设置完可不可以)。</span> 

2.&nbsp;在分钟以<span>8</span><span>为尾数时,设置闹铃。(某个人喜欢</span><span>8</span><span>这个数字,所以这条规则是可以原谅的对吧)。</span> 

3.&nbsp;每当小时数加1可以被分钟数加1整除的时候,设置闹铃。比如03<span>:</span><span>01</span><span>,</span><span>3+1=4</span><span>,</span><span>1+1=2</span><span>,</span><span>4</span><span>可以被</span><span>2</span><span>整除。</span> 

不过他还是不放心,我定的第<span>x</span><span>个闹铃到底应该什么时候响来着?</span> 

题目输入

第一行有一个整数n,代表输入实例有n组。接下来的n行,每行一个整数x(保证1<=x<=80),代表第x个闹铃。

题目输出

对于每个整数x,请输出x对应闹铃的时间,时间格式用hhmm表示。

时钟的时和分始终要保持两位(C语言用printf(“%02d”)C++语言用cout<<setw(2)<<setfill(‘0’),具体用法请看你自己带进来的资料。什么你没准备?请吸取教训充分准备。)

输入/输出样例

题目输入

3
1
3
9

题目输出

00:00
00:15
00:48

C语言解答

#include <stdio.h>
int main()
{
	int n;
	scanf("%d", &n);
	while(n--)
	{
		int min = 0;
		int hour = 0;
		int t = 0;
		int count = 1;
		scanf("%d", &t);
		while(count != t)
		{
			min ++;
			if(min == 60)
			{
				min = 0;
				hour ++;
			}
			if(hour == 24)
			{
				hour = 0;
			}
			if(min % 15 == 0)
			{
				count ++;
			}else{
				if(min%10 == 8)
				{
					count ++;
				}else{
					
					if((hour+1)%(min+1) == 0)
					{
						count ++;
					}
				}
			}
		}
		printf("%02d:%02d\n", hour, min);
		
	}
	return 0;
}

C++解答

#include <stdio.h>
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
int main(void)
{
//    ifstream cin;
//    ofstream cout;
//    cin.open("g.in");
//    cout.open("g.out");
    int i=1,hh,mm,n,a[81],b[81];
    for(hh=0;i<=80;hh++)
        for(mm=0;mm<60&&i<=80;mm++)
            if(mm%15==0||mm%10==8||(hh+1)%(mm+1)==0)
    {
        a[i]=hh;
        b[i]=mm;
        i++;
    }
    cin>>n;
    while(n--)
    {
        int x;
        cin>>x;
       cout<<setw(2)<<setfill('0')<<a[x]<<":"<<setw(2)<<setfill('0')<<b[x]<<endl;
    }
    return 0;
}

时间限制 2 秒
内存限制 128 MB
讨论 统计
上一题 下一题