1-3章总结 了一些题

2.3题
在这里插入图片描述
这题主要是思想
代码如下

import java.util.Scanner;
class test23{
    public static void main(String[] args){
      System.out.print("请输入0-1000之间的数字 ");
      Scanner scanner=new Scanner(System.in);
       int a=scanner.nextInt();
       System.out.print(sumJ(a));
    }
    public static int sumJ(int a){
        int sum=0;
        while(true){ //此题的关键就是思想
            if(0<=a&&a<=1000){//关键是要如何将一个数的各位数字分解出来
                sum=sum+a%10;
                a=a/10;
                if(a==0){//while(true)循环的结束条件
                    return sum;
                }
        }
       }
    }
}

3.7
在这里插入图片描述
这道题难点在于一月,二月的时候,要加12,同时year-1,其他都是套公式啦

import java.util.Scanner;
class test37{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.print("输入月 " );
        int m=scanner.nextInt();
        System.out.print("输入年 " );
        int year=scanner.nextInt();
        System.out.print("输入第几天 " );
        int q=scanner.nextInt();
        qiuhe(m, year, q);
    }
    public static void qiuhe(int m,int year,int day){
        String str="";
        if(m==1|| m==2){
            m+=12;
            year-=1;
        }
        int h=(day+26*(m+1)/10+year%100+year%100/4+year/100/4+5*year/100)%7;
        switch(h){
         case 0:
          str="星期六";
            break;
          case 1:
          str="星期日";
          break;
          case 2:
          str="星期一";
          break;
          case 3:
          str="星期二";
          break;
          case 4:
          str="星期三";
          break;
          case 5:
          str="星期四";
          break;
          case 6:
          str="星期五";
          break;
        }
        System.out.print("今天是 "+str);

    }
}

在这里插入图片描述
此题的关键还是思想哦,要知道两数公约数的求法

import java.util.Scanner;
class test312{
    public static void main(String[] args){
      Scanner scanner =new Scanner(System.in);
      System.out.print("请输入n1 " );
      int n1=scanner.nextInt();
      System.out.print("请输入n2 " );
      int n2=scanner.nextInt();
       zuiDa(n1, n2);
    }
    public static void zuiDa(int n1,int n2){
        int gcd=1;
        for(int i=n1>n2?n2:n1;i>=1;i--){//此题的关键所在
           if(n1%i==0&&n2%i==0){
               gcd=i;
               System.out.print("最大公约数是 "+gcd);
               return;
           }
        }
    }
}

在这里插入图片描述
此题的关键还是思想哦
看代码哦

import java.util.Scanner;
class test313{
    public static void main(String[] args){
      Scanner scanner=new Scanner(System.in);
      System.out.print("请输入一个数 ");
      int n=scanner.nextInt();
      shengXu(n);
    }
    public static void shengXu(int n){
      while(true){
          for(int i=2;i<=n;i++){//这道题主要是思想和while(true),break的用法,因数是从2-n
              if(n%i==0){
                  System.out.print(i);
                  n/=i;
                  break;
              }
          }
          if(n==1){
              break;
          }
      }
    }
}

在这里插入图片描述
这道题我们要清楚什么是素数,然后运用循环
看代码哦

class test317{
    public static  void main(String[] args){
     sushu();
    }
    public static void sushu(){ //主要是思想和一些语句的格式
        boolean flag=true;
        int count=0;
        for(int i=2;i<=1000;i++){
            for(int j=2;j<=i-1;j++){
                if(i%j==0){
                    flag=false;
                    break;
                }
            }
            if(flag){
              count++;
              System.out.print(i+" ");
              if(count%8==0){
                  System.out.println();
              }
            }
            flag=true;
        }
    }
}

在这里插入图片描述
同样是重要的解题思想
看代码喽

class test321{
    public static  void main(String[] args){
     wanquan();
    }
    public static void wanquan(){ //主要是思想和一些语句的格式
        int sum=0;
        for(int i=2;i<=10000;i++){
            for(int j=1;j<=i/2;j++){
                if(i%j==0){
                  sum=sum+j;
                }
            }
            if(sum==i){
              System.out.println(i+" ");
              }
              sum=0;//这里很关键
        }
    }
}

在这里插入图片描述
这里要用到字符串的连接哦

import java.util.Scanner;
class test323{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入一个十进制的数 ");
        int n=scanner.nextInt();
        System.out.print(erjinzhi(n));
    }
    public static String erjinzhi(int n){
        String str="";
        while(true){
         str=n%2+str;//关键之处在于连接
            n/=2;
            if(n==0){
                break;
            }
        }
        return str;
    }
}

324
在这里插入图片描述
此题的关键在于逻辑判断哦
看代码哦

import java.util.Scanner;
class test324{
    public static void main(String[] args){
    Scanner scanner=new Scanner(System.in);
    System.out.print("请输入数据 ");
    int sum=0;
    int count=0;
    int  Max=0;
     while(true){
        int num=scanner.nextInt();
      if(num>Max){
          Max=num;//关键在于此处
          count=1;//关键在于此处
      }
      else if(num==Max){
          count++;
      }
      if(num==0){
          break;
      }
    }
    System.out.print("最大值是 "+Max+"出现次数是 "+count);
    }
}

未完待续哦

发布了15 篇原创文章 · 获赞 0 · 访问量 296

猜你喜欢

转载自blog.csdn.net/qq_37244548/article/details/104328079