试题 算法训练 1的个数
问题描述
输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。
输入:15
输出:8
下面看代码吧!
import java.util.Scanner;
public class Main46 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int count=0;//用来记录1的个数
Scanner scanner =new Scanner(System.in);
String n=scanner.next();
int a = Integer.parseInt(n);//String转化为Int
for(int i=1;i<=a;i++) {
String b=Integer.toString(i);//Int转化为String
char t[]=b.toCharArray();//将转化后的String存进一个字符数组
for(int j=0;j<t.length;j++) {
if(t[j]=='1') {
count++;
}
}
}
System.out.println(count);
}
}
这个实现方法要用到int转换成String,以及String转化为int:
用到的方法:
String b=Integer.toString(i);//Int转化为String
int a = Integer.parseInt(n);//String转化为Int