用 C++ 统计给定数字时钟显示相同数字的次数


假设我们有一个 HH:MM 类型的数字时钟,它只显示小时和分钟。我们得到小时和分钟作为输入。目标是计算所有数字都相同(H=M)的次数。

这种情况一天发生 3 次,第一次在午夜 00:00,然后是 11:11,最后是 22:22。时间采用 24 小时制表示。

输入

Input: 12 hours 22 minutes.

输出

2

说明 − 对于 00:00 和 11:11。12 小时内出现两次。

输入

Input: 48 hours 22 minutes.

输出

5

说明 − 对于 00:00、11:11 和 22:22。

下面程序中使用的步骤如下

  • 变量 hours 和 minutes 存储输入。
  • 函数 countIdentical(int hours, int minutes) 获取分钟和小时并返回 HH:MM 数字都相同的次数。
  • 对于 00:00,将计数初始化为 1。
  • 对于每个小时为 11 和 22,以及分钟为 11 和 22,计数加 1。
  • 循环结束后返回结果。
  • Count 是期望的结果。
  • 打印计数。

示例

 在线演示

// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
// examples- 11:11 11hrs 11 mins, 22:22
int countIdentical(int hours, int minutes){
   // Initialized to 1 because of 00:00
   int i, count=1;
   // For double digit hours
   for (i = 0; i <= 99 && i < hours; i = i + 11) {
      // Double digit minutes
      if ((i % 10) < minutes)
      count++;
   }
   return count;
}
int main(){
   int hours = 48;
   int minutes = 22;
   cout <<"Times when all digits are identical in HH:MM :"
   << countIdentical(hours, minutes);
   return 0;
}

输出

Times when all digits are identical in HH:MM : 6

更新于:2020年8月3日

290 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告