秒から日


難易度 簡単に
よく聞かれる MAQ
数学

問題文

「SecondsToDays」の問題は、 整数 s秒を指します。 対応する日数、時間数、分数、秒数を出力します。

s = 1543765
17dd 20hh 49mm 25ss

説明:指定された入力を必要な形式に変換しています。 17日、20時間、49 m、25秒になります。

s = 9856743
114dd 1hh 59mm 3ss

アプローチ

数式を使用して、次の変数を計算します–

ご存知のとおり、1日= 24 * 3600秒

したがって、秒を分に変換するには–

numberOfDays = inputSeconds / 24 * 3600

私たちが知っているように、1時間= 3600秒

したがって、秒を分に変換するには–

numberOfHours =残り秒/ 3600

私たちが知っているように、1分= 60秒

したがって、秒を分に変換するには–

numberOfMinutes = remianingSeconds / 60

秒を日数に変換するアルゴリズム

1. Initialise a variable of interger type s referring to the seconds.
2. Create function to convert the seconds into the days, hours, minutes and seconds which accept an integer variable as it's parameter.
3. After that, create a variable of interger type days and initialise it's value as the result of the division of the given integer variable s and 24x3600.
4. Update the value of given integer variable s as the result of the mod of the given integer variable s and 24x3600.
5. Similarly, create a variable of interger type hours and initialise it's value as the result of the division of the given integer variable s and 3600.
6. Update the value of given integer variable s as the result of the mod of the given integer variable s and 3600.
7. Similarly, a variable of interger type minutes and initialise it's value as the result of the division of the given integer variable s and 60.
8. Update the value of given integer variable s as the result of the mod of the given integer variable s and 60.
9. After that, a variable of interger type variable seconds and initialise it as s.
10. Finally, print the integer variables days, hours, minutes and seconds.

秒から日

s = 300秒の例を見てみましょう。 まず最初に、日数を見つけます。 これは、ここで指定されている時間の単位であり、特に最大秒数があります(1日= 24 x 3600秒、1時間= 3600秒、1分= 60秒)。 したがって、sをj24 x 3600で除算すると、商は0になり、余りは300になります。つまり、0日です。 残りの秒数で、時間数を見つけます。 ここでも、300を3600で除算します。商は0で、余りは300です。したがって、残りの秒を60で割ると、分数がわかります。商は5、余りは0になります。したがって、解いた後、 300秒= 0日0時間0分0秒を取得します。

コード

秒を日数に変換するC ++プログラム

#include <bits/stdc++.h> 
using namespace std; 
  
void convertSecond(int s){ 
    int days = s/(24*3600); 
  
    s = s%(24*3600); 
    int hours = s/3600; 
  
    s %= 3600; 
    int minutes = s/60; 
  
    s %= 60; 
    int seconds = s; 
      
    cout<<days<<"dd "<<hours<<"hh "<<minutes<<"mm "<<seconds<<"ss "; 
}
   
int main(){ 
    int s = 1543765; 
    convertSecond(s); 
    return 0; 
}
17dd 20hh 49mm 25ss

秒を日数に変換するJavaプログラム

import java.io.*; 
  
class Seconds{ 
    
    static void convertSecond(int s){ 
        int days = s/(24*3600); 
        
        s = s%(24*3600); 
        int hours = s/3600; 
        
        s %= 3600; 
        int minutes = s/60; 
        
        s %= 60; 
        int seconds = s;
          
        System.out.println(days+"dd "+hours+"hh "+minutes+"mm "+seconds+"ss "); 
    } 
      
    public static void main (String[] args){ 
        int s = 1543765;
        convertSecond(s); 
    } 
} 
17dd 20hh 49mm 25ss

複雑さの分析

時間の複雑さ

O(1) 一定の時間を使用したためです。 いくつかの特定の数式とそれらも単一の入力でのみ使用します。

スペースの複雑さ

O(1) 定数スペースを使用したため、一時変数が必要な場合でも、それらは定数でした。