首页 > 试题广场 >

小乐乐定闹钟

[编程题]小乐乐定闹钟
  • 热度指数:65934 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

小乐乐比较懒惰,他现在想睡觉,然后再去学习。他知道现在的时刻,以及自己要睡的时长,想设定一个闹钟叫他起床学习,但是他太笨了,不知道应该把闹钟设定在哪个时刻,请你帮助他。(只考虑时和分,不考虑日期)


输入描述:

输入现在的时刻以及要睡的时长k(单位:minute),中间用空格分开。

输入格式:hour:minute k(如hour或minute的值为1,输入为1,而不是01)

(0 ≤ hour ≤ 23,0 ≤ minute ≤ 59,1 ≤ k ≤ 109)



输出描述:
对于每组输入,输出闹钟应该设定的时刻,输出格式为标准时刻表示法(即时和分都是由两位表示,位数不够用前导0补齐)。
示例1

输入

0:0 100

输出

01:40
示例2

输入

1:0 200

输出

04:20
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()) {
            String[] message = scanner.nextLine().split(" ");
            String[] hourAndMinute = message[0].split(":");
            int hour = Integer.parseInt(hourAndMinute[0]);
            int minute = Integer.parseInt(hourAndMinute[1]);
            long clock = Long.parseLong(message[1]);
            long newMinute = (clock % 60 + minute)%60;
            long newHour = (clock / 60 + hour + (clock % 60 + minute)/60)%24;
            System.out.printf("%02d:%02d", newHour, newMinute);
        }
    }
}//清楚关系式即可
发表于 2021-03-19 21:39:33 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String[] s = sc.nextLine().split(" ");
            String[] time = s[0].split(":");
            int sleep = Integer.parseInt(s[1]);
            int hour = sleep/60;
            int minute = sleep%60;
            int curH = Integer.parseInt(time[0]);
            int curM = Integer.parseInt(time[1]);
            curH = (curH+hour+(minute+curM)/60)%24;
            curM = (curM+minute)%60;
            System.out.println(String.format("%02d",curH)+":"+ String.format("%02d",curM));
        }
    }
}


发表于 2020-10-07 16:20:03 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String[] in=sc.nextLine().split(" |:");
        int hour=Integer.valueOf(in[0]);
        int min=Integer.valueOf(in[1]);
        int time=Integer.valueOf(in[2]);
        int mod=time%1440;
        hour=(mod/60+hour+(mod%60+min)/60)%24;
        min=(mod%60+min)%60;
        System.out.println(String.format("%2d",hour).replace(" ","0")+":"+String.format("%2d",min).replace(" ","0"));
    }
}
这样处理输出域比较简洁
发表于 2020-07-11 11:10:21 回复(0)
#include <stdio.h>
int main()
{
    int h,m,k;
    scanf("%d:%d %d",&h,&m,&k);
    m+=k%60;
    if(m>60){
        m%=60;
        h++;
    }
    h+=k/60;
    h%=24;
    printf("%02d:%02d\n",h,m);
}

发表于 2020-04-10 19:26:44 回复(0)
#include<stdio.h>
int main() {
    int hour, minute, minutes;
    scanf("%d:%d %d", &hour, &minute, &minutes);
    hour = (hour + (minute + minutes) / 60) % 24;
    minute = (minute + minutes) % 60;
    printf("%02d:%02d", hour, minute);
}
  • printf()

    printf(“%5d”, tmp) 会用空格补充 

    printf(“%05d”, tmp) 会用0补充空格

还有更简单的格式
#include<stdio.h>
int main() {
    int hour, minute, minutes;
    scanf("%d:%d %d", &hour, &minute, &minutes);
    printf("%02d:%02d", (hour + (minute + minutes) / 60) % 24, minute = (minute + minutes) % 60);}

五行
发表于 2020-12-06 20:38:56 回复(2)
# 就是整除和求余,加个格式输出
h_m, k = input().split()
k = int(k)
h, m = map(int, h_m.split(':'))
h, m = ((k+m) // 60 + h) % 24, (k+m) % 60
print("{:0>2}:{:0>2}".format(h,m))


发表于 2020-07-23 11:00:04 回复(0)
#include <stdio.h>

int main()
{
    int hour, minute, k;
    scanf("%d:%d %d", &hour, &minute, &k);//输入

    hour += k / 60;//增加小时
    minute += k % 60;//增加分钟
    if(minute > 59)//如果分钟大于59,将分钟调整为0~59,并将小时加1。
    {
        minute -= 60;
        hour++;
    }
    while(hour > 23)//如果小时大于23,将小时调整为0~23。
    {
        hour -= 24;
    }
    
    printf("%02d:%02d", hour, minute);//输出
    return 0;
}

发表于 2024-01-27 19:34:53 回复(0)
#include <stdio.h>

int main() 
{
    int h, m, k;

    scanf("%d:%d %d", &h, &m, &k);

    printf("%02d:%02d\n", ((k + m) / 60 + h) % 24, (k + m) % 60);

    return 0;
}

编辑于 2024-03-02 20:58:27 回复(0)
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
    int a, b, c;
    char ch;
    cin >> a >> ch >> b >> c;
    a += c / 60;
    b = (b + c%60);
    if (b >= 60){
        b -= 60;
        a += 1;
    }
    if (a >= 24)
        a = a % 24;
    cout << setw(2) << setfill('0') << a << ':' << fixed << setw(2) << b << endl;
    return 0;
}

发表于 2022-08-17 11:11:28 回复(0)
#include <stdio.h>

int main()
{
    int h,m;
    long k,t;
    scanf("%d:%d %ld",&h,&m,&k);
    t = h *60 + m +k;
    m = t % 60;
    h = t / 60 % 24;
    printf("%02d:%02d",h,m);
    
    return 0;
}

发表于 2022-08-05 15:59:03 回复(0)
a,b,c=map(int,input().replace(':',' ').split())
m=(c%60+b)%60
h=(int(c/60)+a+int((c%60+b)/60))%24
print('{:02d}:{:02d}'.format(h,m))

发表于 2022-06-01 15:00:15 回复(1)
#include<stdio.h>
int main()
{
    int h = 0;
    int m = 0;
    int k = 0;
    scanf("%d:%d %d",&h,&m,&k);
    h = h+(m+k)/60;
    m = (k+m)%60;
    printf("%#02d:%#02d",h%24,m);
    return 0;
}

发表于 2022-05-11 20:58:28 回复(0)
# include<stdio.h>
int main()
{
    int h,m,k,mins;
    scanf("%d:%d %d",&h,&m,&k);
    mins=m+k;//所有的分钟
    m=mins%60;//取余求得分钟
    h=h+mins/60;//除60求得时钟
    h=h%24;//小时不会超过24,所以需要再次取余进行判断
    printf("%02d:%02d",h,m);
    return 0;
}

发表于 2022-03-26 21:36:10 回复(0)
#include<iostream>
using namespace std;
int main()
{
    int h, m, k;
    scanf("%d:%d %d", &h, &m, &k);
    h = (h + (k + m) / 60) % 24;
    m = (k + m) % 60;
    
    printf("%02d:%02d", h, m);
}

发表于 2022-02-26 13:58:43 回复(0)
#include <bits/stdc++.h>
using namespace std;
int main(){
    int hour, minute, n;
    cin>>hour;
    getchar();
    cin>>minute;
    cin>>n;
    int minutes = hour*60+minute;
    minutes += n; // 总时间数
    hour = minutes/60%24;
    minute = minutes%60;
    cout<<setfill('0')<<setw(2)<<hour<<":"<<setfill('0')<<setw(2)<<minute;
    return 0;
}

发表于 2022-01-26 22:37:28 回复(0)
#include<stdio.h>
int main()
{
	int h = 0;
	int m = 0;
	int t = 0;
	scanf("%d:%d %d", &h, &m, &t);
	m = m + t % 60;//分钟
	h = (h + t / 60 + m / 60);//小时=整时+分钟进位
	printf("%02d:%02d", h%24, m%60);//一天小时小于24,分钟小于60
	return 0;
}

发表于 2021-11-15 23:22:41 回复(6)
#include<stdio.h>
int main(){
    int h,m,k;
    scanf("%d:%d %d",&h,&m,&k);
    printf("%02d:%02d",(h+(m+k)/60)%24,(m+k)%60);
    return 0;
}

发表于 2021-04-10 19:34:02 回复(0)

                          JavaScript

var a = readline().split(" ");
var hm = a[0].split(":");
 
var s = parseInt(a[1]);
var h = parseInt(hm[0]);
var m = parseInt(hm[1]);
 
var newm = (m+s) % 60;
var newh = parseInt(h+ ((m+s) / 60))%24;
var res = "";
if(String(newh).length == 1) res += "0"+newh+":";
else res += newh+":";
 
if(String(newm).length == 1) res += "0"+newm;
else res += newm;
console.log(res)


发表于 2020-06-23 09:09:45 回复(0)
#include <stdio.h>

int main() {
    int a, b,c,m;
    scanf("%d:%d %d",&a,&b,&c);
    int n=c%60+b;
    m=c/60+a;
    if(n>60){
        m=m+1;
        n=n%60;
    }
    if(n==60){
        m=m+1;
        n=0;
    }
    if(m>=24){
        m=m%24;
    }
    printf("%02d:%02d",m,n);
    return 0;
}
发表于 2024-11-24 11:00:28 回复(0)
发表于 2024-10-14 13:32:48 回复(0)