薯队长在平时工作中需要经常跟数字打交道,某一天薯队长收到了一个满是数字的表格,薯队长注意到这些数字里边很多数字都包含1,比如101里边包含两个1,616里包含一个1。
请你设计一个程序帮薯队长计算任意一个正整数n(0<n<=2147483647),从1到n(包括n)的所有整数数字里含有多少个1。
1.生成一段随机数字
long num = (long) ((Math.random())*2147483647);
2.计划使用String的toCharArray()方法 将字符串转换成char类型数组
String nn = String.valueOf(num);
char[] c = nn.toCharArray();
3.利用for循环对比数组c中的1
int count=0;
String base = "1";
for(int i = 0; i<c.length ; i++) {
if(c[i]==base.toCharArray()[0])
count++;
}
整体代码
public static void main(String[] args) {
long num = (long) ((Math.random())*2147483647);
System.out.println(num);
String nn = String.valueOf(num);
char[] c = nn.toCharArray();
int count=0;
String base = "1";
for(int i = 0; i<c.length ; i++) {
if(c[i]==base.toCharArray()[0])
count++;
}
System.out.println(count);
}
心得:这段代码觉得很勉强 果然一直躺着认识不到自己的垃圾