给定一个正整数n,请返回0到n(包括n)的数字中2出现了几次。
测试样例:
10
返回:1
import java.util.*; /* 我们假设dp[i]表示正整数i的时候出现2的次数 *///那里越界了,我想不明白 public class Count2 { public int countNumberOf2s(int n) { // write code here int[] dp = new int[n+1]; dp[0] = 0; for(int i = 1;i<=n;i++){ if(isContain2(i)) dp[i] = dp[i-1] + 1; else dp[i] = dp[i-1]; } return dp[n]; } public boolean isContain2(int n){ String str = String.valueOf(n); if(str.contains("2")) return true; return false; } }跪求大神知道,为啥说我越界了呢
妹的,这样都说我运行时长过长? public class Count2 { public int countNumberOf2s(int n) { int count=0; for(int i=1;i<=n;i++){ if(i%10==2||i/10==2){ count++; } } return count; } public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.print("请输入一个整数:"); int input=scanner.nextInt(); Count2 c2=new Count2(); System.out.println("\"2\"共出现"+c2.countNumberOf2s(input)+"次"); } }