public int count(int num){
//write your code here
int i;
int counter=0;
for(i=2;i<=num;i++){
if((i%3==0)||(i%10==3)||(i/10==3||(i/100==3)))
counter++;
}
return counter;
}
样本输入#1
count(15)
样本输出#1
6 (3,6,9,12,13,15)
样本输入#2
count(40)
样本输出#2
21 (3,6,9,12,13,15,18,21,23,24,27,30,31,32,33,34,35,36,37,38,39)
我的代码在100输入内通过了所有测试用例,但在100输入后失败了。该怎么办?
if((i%3==0) || (i%10==3) || (i/10==3) || (i/100==3) ))
如果条件不好。例如,数字:134是数字3Den,但在Your if语句中不会返回true
提示:您需要(例如(创建while循环并使用指数,如:((i / (10^a)) % 10)==3
方法2:(不太整洁(将int i
更改为String
,然后使用String.contains()
或String.indexOf()
public class NextMultiple37 {
public static void main(String[] args) {
NextMultiple37 obj = new NextMultiple37();
int result = obj.findNextMultiple(1024);
System.out.println(result);
}
public int findNextMultiple (int num) {
//write your code here
int i=0;
for(i=num+1;i>=num;i++){
if(i%3==0&&i%7==0){
return i;
}
}
return i;
}
}