利用模板元计算一个整数中含有多少个数字n

来源:互联网 发布:听说科技人机对话软件 编辑:程序博客网 时间:2024/06/08 15:14

baihacker的专栏看到他计算金山招聘题目:编程计算从1到2008080808之间的整数有多少个含有数字7的帖子,用到了模板元。忽然想到可以用用模板元计算一个整数中含有多少个数字n。程序如下。

 

 #include <iostream>
 using namespace std;

 const int Num=8;
 const int x=2008080808;
 const int y=77777777;
 const int z=73928317;

 template<long N>
 struct Check
     {
     enum{result=(N%10==Num)};
     };

 template<long N>
 struct Count
     {
     enum{result=Check<N>::result+Count<N/10>::result};
     };

 template<>
 struct Count<0>
     {
     enum{result=0};
     };

 void main(void)
     {
     cout<<x<<" has "<<Count<x>::result<<endl;
     cout<<y<<" has "<<Count<y>::result<<endl;
     cout<<z<<" has "<<Count<z>::result<<endl;
     }

0 0
原创粉丝点击