基础编程题思路

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 }

 

 

 

 

 

 


    
     

posted @ 2021-10-09 18:16  KumYa  阅读(310)  评论(0)    收藏  举报