贛州市微程網(wǎng)絡科技有限公司徐州自動seo
C語言刷題——————(2)
刷題網(wǎng)站:題庫 - 藍橋云課 (lanqiao.cn)
First Question:時間顯示
題目描述
小藍要和朋友合作開發(fā)一個時間顯示的網(wǎng)站。
在服務器上,朋友已經(jīng)獲取了當前的時間,用一個整數(shù)表示,值為從 19701970 年 11 月 11 日 00:00:0000:00:00 到當前時刻經(jīng)過的毫秒數(shù)。
現(xiàn)在,小藍要在客戶端顯示出這個時間。小藍不用顯示出年月日,只需要顯示出時分秒即可,毫秒也不用顯示,直接舍去即可。
給定一個用整數(shù)表示的時間,請將這個時間對應的時分秒輸出。
輸入描述
輸入一行包含一個整數(shù),表示時間。
輸出描述
輸出時分秒表示的當前時間,格式形如 HH:MM:SS
,其中 HH
表示時,值為 00 到 2323,MM
表示分,值為 00 到 5959,SS
表示秒,值為 00 到 5959。時、分、秒 不足兩位時補前導 00。
輸入輸出樣例
示例 1
輸入
46800999
輸出
13:00:00
示例 2
輸入
1618708103123
輸出
01:08:23
評測用例規(guī)模與約定
對于所有評測用例,給定的時間為不超過 10^18 的正整數(shù)。
思路:先分別對應化成秒、分、時,再分別算有多少秒、分、時
Demo:
#include <stdio.h>
#include <stdlib.h>int main(int argc, char *argv[])
{// 請在此輸入您的代碼long long int millisecond;scanf("%lld", &millisecond);millisecond /= 1000;//先化成秒int second = millisecond % 60;//得到有多少秒millisecond /= 60;//再化成分鐘int minute = millisecond % 60;//得到有多少分鐘millisecond /= 60;//最后化成小時int hour = millisecond % 24;//得到有多少小時printf("%02d:%02d:%02d", hour, minute, second);return 0;
}
Second Question:特別的數(shù)求和
題目描述
小明對數(shù)位中含有 2、0、1、9 的數(shù)字很感興趣(不包括前導 0),在 1 到 40 中這樣的數(shù)包括 1、2、9、10 至 32、39 和 40,共 28 個,他們的和是 574。
請問,在 1 到 n 中,所有這樣的數(shù)的和是多少?
輸入描述
輸入一行包含一個整數(shù) n(1≤n≤10^4)。
輸出描述
輸出一行,包含一個整數(shù),表示滿足條件的數(shù)的和。
輸入輸出樣例
示例
輸入
40
輸出
574
思路:先將末尾為0和2、1、9的數(shù)字分開找,每一次找完,就/10,排除末尾數(shù)字,再找十位數(shù)字,就相當于先從個位開始,依次是十位、百位、千位……
Demo:
#include <stdio.h>
#include <stdlib.h>int main(int argc, char *argv[])
{// 請在此輸入您的代碼int num = 0;int mid = 0;scanf("%d", &num);int sum = 0;for (int i = 1; i <= num; i++){mid = i;while (mid > 0){if (mid % 10 == 0 && mid / 10 != 0)//找是10的倍數(shù)的整數(shù){sum = sum + i;break;}if ((mid % 10 == 2) || (mid % 10 == 1) || (mid % 10 == 9))//用來找數(shù)字最后一位為2、1、9的數(shù)字{sum += i;break;}mid = mid / 10;//相當于除去最后一個末尾數(shù)字} }printf("%d\n",sum);return 0;
}
枯木逢春猶再發(fā),人無兩度再少年。