这个范围可以说无穷大,我这里给一个到10000以内的实现#include <iostream>
int main(void)
{
using std::cout;
using std::cin;
using std::endl;
int L, times;
cout<<"请输入判断范围的起点L 和 2出现的次数:"<<endl;
cin>>L>>times;
int cnt = 0, num;
while (cnt < times)
{
num = 0;
if (L == 2)//个位数判断
++num;
else if (L>10 && L<100)//十位数判断
{
if (L % 10 == 2)
++num;
if (L / 10 == 2)
++num;
}
else if (L>100 && L<1000)//百位数判断
{
if (L % 10 == 2)
++num;
if ((L / 10)% 10 == 2)
++num;
if (L / 100 == 2)
++num;
}
else if (L>1000 && L<10000)//千位数判断
{
if (L % 10 == 2)
++num;
if ((L / 10)% 10 == 2)
++num;
if ((L / 100)% 10 == 2)
++num;
if (L / 1000 == 2)
++num;
}
cnt += num;
++L;
}
cout<<L-1<<endl;
system("pause");
return 0;
}
|