问:limit 范围内带有target数字的数有几个?limit,target均为整数。
思路:法一 直接将范围内的每个数转化为字符串与目标字符串比较即可,简单粗暴。
法二 判断个十百千万.....每个位上是否有目标数字,只要满足一个条件即可。
这里以2020中的2为例
import java.lang.reflect.Method;
public class beautifulTow {
public static void main(String[] args) {
// TODO Auto-generated method stub
findmystorynumber fd=new findmystorynumber(2020, 2);
System.out.println("目标范围内的神秘数字个数为:"+fd.method1());
System.out.println("目标范围内的神秘数字个数为:"+fd.method2());
}
}
class findmystorynumber//
{
int limit;//寻找范围大小
int target;//目标数
public findmystorynumber(int limit,int target) {
// TODO Auto-generated constructor stub
this.limit=limit;this.target=target;
}
int method1()
{
int count=0;
for(int i=1;i<=limit;i++)
{
String x=Integer.toString(i);
String tar=Integer.toString(target);
if(x.contains(tar))
count++;
}
return count;
}
int method2()
{
int count=0;
for(int i=1;i<=limit;i++)
{
if((i%10==target)||(i/1000==target)||(i%100/10==target)||(i%1000/100==target))
count++;
}
return count;
}
}