
纯模拟即可
1 #include <stdio.h> 2 #include <string.h> 3 4 int a[10] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6}; 5 int num[1000]; 6 int main() 7 { 8 freopen("alarm.in", "r", stdin); 9 freopen("alarm.out", "w", stdout); 10 int n, i, j; 11 scanf("%d", &n); 12 for(i=0;i<=60;i++) 13 { 14 num[i] = a[i%10] + a[i/10]; 15 } 16 for(i=0;i<24;i++) 17 { 18 for(j=0;j<60;j++) 19 { 20 if(num[i]+num[j]==n) 21 { 22 printf("%02d:%02d\n", i, j); 23 break; 24 } 25 } 26 if(j<60) break; 27 } 28 if(i>=24) printf("Impossible\n"); 29 return 0; 30 }
本文介绍了一个使用模拟算法解决特定数学问题的C语言程序示例。该程序旨在找到所有可能的小时和分钟组合,使得显示的时间数字段总和等于给定的目标值。通过预计算每分钟和每小时数字段的总和并存储在数组中,程序遍历所有可能的时间组合,检查它们是否满足条件,并输出所有匹配的时间。

被折叠的 条评论
为什么被折叠?



