基础编程题思路
1. 程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
1 public static void main(String[] args) { 2 Scanner input = new Scanner(System.in); 3 int temp = 0; 4 int result = 0; 5 int num = input.nextInt(); 6 while(num != 0) { 7 temp = num % 10; 8 result = result * 10 + temp; 9 num /= 10; 10 } 11 System.out.println(result); 12 }
分析程序:
先定义一个标记变量temp,进入循环后,把输入的数的个位数赋值给temp,即 temp = num % 10
再定义一个变量用于存放结果,每次乘10再加上标记变量
每次num都除10;
当 num = 123 时:
- 第一次循环:
- x = 123 % 10 = 3;
- result = 0 * 10 + 3 = 3
- num = 123 / 10 = 12
- 第二次循环:
- x = 12 % 10 = 2;
- result = 3 * 10 + 2 = 32
- num = 12 / 10 = 1
- 第三次循环:
- x = 1 % 10 = 1;
- result = 32 * 10 + 1 = 321
- num = 1 / 10 = 0
- 跳出循环
2. 从键盘输入一个以秒为单位的时间值整数,将其转换成时、分、秒的形式输出。
1 public static void main(String[] args) 2 { 3 Scanner input = new Scanner(System.in); 4 int time = input.nextInt(); 5 int hour = time / 3600; 6 int minute = time % 3600 / 60; 7 int second = time % 3600 % 60; 8 System.out.println(hour + ":" + minute + ":" + second); 9 }
分析程序:
*小时 = 总秒 / 3600
*分钟 = 总秒 % 3600 / 60
*秒数 = 总秒 % 3600 % 60
3. 计算阶乘

1 public static void main(String[] args) { 2 // TODO Auto-generated method stub 3 Scanner input = new Scanner(System.in); 4 int n = input.nextInt(); 5 int sum=1; 6 if(n==0) { 7 System.out.println(1); 8 }else { 9 for(int i=1;i<=n;i++) { 10 sum=sum*i; 11 } 12 System.out.println(sum); 13 } 14 }
分析程序:
当n=0时,n的阶乘为1
当n>0时,n的阶乘为n * (n - 1) * (n - 2) * ... * 2 * 1
用for循环将n的阶乘的每一个数遍历出来,再相乘即可
4.求三个整数num1,num2,num3的最大值和最小值,最大值结果存入max中,最小值结果存入min中。
1 public static void main(String[] args) { 2 Scanner input = new Scanner(System.in); 3 System.out.println("请输入三个整数:"); 4 int num1 = input.nextInt(); 5 int num2 = input.nextInt(); 6 int num3 = input.nextInt(); 7 int max = ((num1 > num2 ? num1 : num2) > num3 ? (num1 > num2 ? num1 : num2) : num3); 8 int min = ((num1 < num2 ? num1 : num2) < num3 ? (num1 < num2 ? num1 : num2) : num3); 9 System.out.println("max:"+max); 10 System.out.println("min:"+min); 11 }

浙公网安备 33010602011771号