import java.util.Scanner;
/*
* 实现功能:
* 输入一个整数,求从1到n这n个整数的十进制表示中1出现的次数。
*
* 思路:
* 1.使用Scanner工具类来获取用户输入的信息;
* 2.定义有参带返回值的方法calcOne()来实现功能;
* 3.方法体中使用循环语句判断1出现的次数。
*/
public class CalcNum {
public static void main(String[] args) {
System.out.println("请输入一个整数:");
Scanner input = new Scanner(System.in);
int numInput = input.nextInt();
CalcNum hello = new CalcNum();
int n1 = hello.calcOne(numInput);
System.out.println("从1到"+numInput+"这"+numInput+"个整数中1出现的次数为:");
System.out.println(n1);
public int calcOne(int num) { // 这一句报错参数 calcOne 的修饰符不合法;只允许使用终态,标记“(”上有语法错误,应为 ; ,标记“)”上有语法错误,应为 ;
int pow1 = 1;
int pow2 = 10 * pow1;
int count = 0;
while(num >= pow1) {
pow2 = 10*pow1;
switch( (num % pow2) / pow1) {
case 0:
count += (num / pow2) * pow1;
break;
case 1:
count += (num / pow2) * pow1;
count += num % pow1 + 1;
break;
default :
count += (num / pow2 + 1) * pow1;
}
pow1 *= 10;
}
return count;
}
}
}这到底怎么了,我不懂不懂不懂,求指教。
添加回答
举报
0/150
提交
取消