文章目录
一、题目
🎃题目描述
🎃输入输出
🎃样例1
输入
0 2 3 0 5 6
输出
23:56:00
二、思路参考
三、代码参考
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 格式化时间,保证时、分、秒的显示格式为两位数
void formatTime(int time, char *formattedTime) {
sprintf(formattedTime, "%02d", time);
}
int main() {
int nums[6];
for (int i = 0; i < 6; i++) {
scanf("%d", &nums[i]);
}
char *maxTime = NULL;
// 遍历所有排列组合情况
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
if (i == j) {
continue;
}
for (int k = 0; k < 6; k++) {
if (k == i || k == j) {
continue;
}
for (int m = 0; m < 6; m++) {
if (m == i || m == j || m == k) {
continue;
}
for (int n = 0; n < 6; n++) {
if (n == i || n == j || n == k || n == m) {
continue;
}
for (int p = 0; p < 6; p++) {
if (p == i || p == j || p == k || p == m || p == n) {
continue;
}
int hour = nums[i] * 10 + nums[j];
int minute = nums[k] * 10 + nums[m];
int second = nums[n] * 10 + nums[p];
if (hour <= 23 && minute <= 59 && second <= 59) {
char formattedTime[9];
formatTime(hour, formattedTime);
strcat(formattedTime, ":");
formatTime(minute, formattedTime + 3);
strcat(formattedTime, ":");
formatTime(second, formattedTime + 6);
if (maxTime == NULL || strcmp(formattedTime, maxTime) > 0) {
if (maxTime != NULL) {
free(maxTime);
}
maxTime = strdup(formattedTime);
}
}
}
}
}
}
}
}
if (maxTime == NULL) {
printf("invalid\n");
} else {
printf("%s\n", maxTime);
free(maxTime);
}
return 0;
}