C++ 中统计整数中孔洞的数量


给定一个包含数字 0 到 9 中孔洞数量的数组 holes[10]。目标是找到给定输入整数的孔洞数量。已知 - holes[] = { 2, 1, 1, 0, 0, 1, 1, 1, 0 }

例如

输入

number = 239143

输出

Count the number of holes in an integer are: 3

解释

We will count holes given in holes[]
239143 ( 1+0+0+2+0+0 )

输入

number = 12345

输出

Count the number of holes in an integer are: 3

解释

We will count holes given in holes[]
12345 ( 1+1+0+0+1)

以下程序中使用的方案如下

只需使用 num%10 获取每个最左边的数字,并将 holes[num%10] 中的孔洞计数添加到 count 中。然后将数字 num 减去 10。

  • 输入一个整数。

  • 初始化 holes[] 数组。

  • 函数 holes_integer(int number, int holes[]) 返回整数中孔洞数量的计数。

  • 将初始计数设置为 0。

  • 遍历直到 number > 0。

  • 将最左边的数字作为 temp = number % 10。将 holes[temp] 添加到 count 中。

  • 将数字减少 10。

  • 最后返回 count 作为结果。

示例

 在线演示

#include <bits/stdc++.h>
using namespace std;
int holes_integer(int number, int holes[]){
   int count = 0;
   while (number > 0){
      int temp = number % 10;
      count = count + holes[temp];
      number = number/10;
   }
   return count;
}
int main(){
   int number = 239143;
   int holes[] = { 2, 1, 1, 0, 0, 1, 1, 1, 0};
   cout<<"Count the number of holes in an integer are: "<<holes_integer(number, holes);
   return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出:

Count the number of holes in an integer are: 2

更新于:2021年1月5日

447 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告