892程序设计18年复试

这里的文件处理,我不是很会,这里是做了一个集总,可以参考一下别人的想法,还得继续学习呀,现在还是不知道自己的错误出在哪里。emmm

package javaapplication12;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author lenovo
 */
public class JavaApplication12 {


    /**
     * @param args the command line arguments
     * 2018年复试
     * 1、两个正整数间所有偶数和
     * 2、输入一个数,计算1+2+2+3+3+3+4....+n+.....+n
     * 3、迭代法求解平方根
     * 4、读文件,统计行数,大小写字母,数字
     * 5、定义一个函数,二项式的展开,数组存储系数
     * 6、选择排序的主要代码
     * 7、递归逆序输出一个数字的不同数位
     * 8、链表的删除操作函数
     */
    //1
  /*  public static void main(String[] args){
      Scanner sc =new Scanner(System.in);
      int a=sc.nextInt();
      int b=sc.nextInt();
      int sum=0;
      for(int i=a;i<=b;i++){
          if(i%2==0){
              sum+=i;
          }
      }
      System.out.println(sum);
    }}*/
   //2
      /*  int n=sc.nextInt();
         int sum=0;
        for(int i=1;i<=n;i++){
           
            sum+=PartSum(i);  
        }
        System.out.println(sum);}
    public static int PartSum(int a){
        int sum1=0;
          for(int i=0;i<a;i++){
            sum1+=a;
        }return sum1;
    }
      
    }*/
   //3
   /* public static void main(String[] args){
        Scanner sc =new Scanner(System.in);
        float a=sc.nextFloat();
        float x=a;
        while(x*x>a){
           x=(x+a/x)/2;
        }System.out.println(x);
    }}*/
  //这是两种牛顿迭代法,本质都一样
     /*  float x=sc.nextFloat();
        float a=0;
        float b=1;
        while(Math.abs(b-a)>0.00001){
            a=b;
            b=(a+x/a)/2;//此处是公式,可去LeetCode查询“X的平方根”,上面有讲解
        }
        System.out.println(b);}}*/
    //4
        /*   public static void main(String[] args) throws IOException {
      System.out.println("请输入文本名:");//系统找不到文件
        Scanner sc = new Scanner(System.in);
        String str=sc.nextLine();
        File a =new File(str);
        FileReader fr=new FileReader(a);
        BufferedReader br =new BufferedReader(fr);
        String s=null;
        String d=null;
        int count=0,count1=0,count2=0,count3=0,count4=0;
        System.out.println("文本的内容为:");
        while((s=br.readLine())!=null){
            char t[]=s.toCharArray();
            for(int i=0,j=0;i<s.length();i++,j=i){
                d=Character.toString(t[i]);
                if(d.matches("[\\u4e00-\\u9fa5]+")){
                    count++;
                }else if(d.matches("[0-9]"))count1++;
                else if(d.matches("[A-Z]"))count2++;
                else if(d.matches("[a-z]"))count3++;
                else count4++;}System.out.println(s);}
        System.out.println("wenben");
        System.out.println(a.length());
        System.out.println("汉字"+count);
            }
        }
        
    */
     /*   public static void main(String[] args){
        // 对于文件,现在不熟练,也不知道是哪里出问题
     try { File file=new File("\"D:\\12\\34.txt\"");//有错误,说是文件不存在
    if(file.exists()){
          
                FileReader fr=new FileReader(file);
                LineNumberReader lnr =new LineNumberReader(fr);
                int linenumber=0;
                while(lnr.readLine()!=null){
                    linenumber++;
                }
                System.out.println(linenumber);
                lnr.close();
            }else System.out.println("File does not exists");
      }
          catch (IOException e) {
            e.printStackTrace();
               //Logger.getLogger(JavaApplication12.class.getName()).log(Level.SEVERE, null, ex);
            }
    }
     }*/
//5使用递归解决
        /*   Scanner sc=new Scanner(System.in);
       int n=sc.nextInt();
       
       for(int i=0;i<=n;i++){
             System.out.print(suan(i,n));//通过二项式计算公式得到二项式系数
        }
}
    public static int suan(int k,int n){
        if(k==0||k==n)return 1;
        else return suan(k,n-1)+suan(k-1,n-1);
    }}*/
      

//5(用杨辉三角解决)
     /*  jisuna(n);}
      public static void jisuna(int n){
        int arr[][]=new int[n][];
         for(int i=0;i<n;i++){
        arr[i]=new int[i+1];}
          for(int i=0;i<arr.length;i++){
              for(int j=0;j<i+1;j++){
                   if(i==j||j==0||i==0){
                       arr[i][j]=1;}
                       else{arr[i][j]=arr[i-1][j-1]+arr[i-1][j];    
                               }
            //  System.out.print(arr[i][j]+"\t");
              } //System.out.println();
              }
          int index=0;
    int []b=new int[n];
   for(int i=0;i<arr[n-1].length;i++){//将杨辉三角的最后一行存储在b数组中,即为二项式展开系数
       b[index]=arr[n-1][i];
       index++;
}
   for(int bb:b){
       System.out.print(bb+"  ");
   }
          }}/*
/*
        jisuna(sc.nextInt());
        
    }
    public static void jisuna(int n){
        int [][]a=new int[n][];
        for(int i=0;i<n;i++){
        a[i]=new int[i+1];}
          for(int i=0;i<a.length;i++){
                for(int j=0;j<a[i].length;j++){
                    if(j==a[i].length-1||j==0){//两种不同的方法计算杨辉三角,都一样
                        a[i][j]=1;}
                    else{
                        a[i][j]=a[i-1][j-1]+a[i-1][j];}
                }
    }
            for(int i=0;i<n;i++){
                  for(int j=0;j<a[i].length;j++){
                      System.out.print(a[i][j]);
                  }System.out.println();
            }
    int index=0;
    int []b=new int[n];
   for(int i=0;i<a[n-1].length;i++){//注意此处的数组下标是n-1
       b[index]=a[n-1][i];
       index++;
} for(int bb:b){
       System.out.print(bb+"  ");
   }
    }}*/
    //6
  /*  public static void main(String[] args){
    Scanner sc =new Scanner(System.in); 
    int a[]=new int[sc.nextInt()];
    for(int i=0;i<a.length;i++){
        a[i]=sc.nextInt();
    }
    //选择排序
    for(int i=0;i<a.length;i++){
        int min=i;
        for(int j=i;j<a.length;j++){
            if(a[min]>a[j]){
                min=j;
            }}
            if(min!=i){
                int temp=a[min];
                a[min]=a[i];
                a[i]=temp;
            }
        }
    System.out.println("排序后:");
     for(int i=0;i<a.length;i++){
        System.out.print(a[i]+"   ");
    }
    }}*/
     //7 
     /*public static void main(String[] args){
    Scanner sc =new Scanner(System.in); 
    int n=sc.nextInt();
        printDigits(n);
    }
public static void printDigits(int n){
    if(n<10){
        System.out.println(n);
        
    }else{
       System.out.println(n%10);//取末尾的数
        printDigits(n/10);//逆序输出
       /* printDigits(n/10);这是正序输出
         System.out.println(n%10);//取末尾的数
    }
}}*/
    
 //8
    /*
    Node head=null;
    class Node{//定义结点
    Node next=null;
    int data;
    public Node(){
        
    }
    public Node(int data){
        this.data=data;
    }
    }
    public void printList(){//打印输出链表
        Node tmp=head;
        while(tmp!=null){
            System.out.print(tmp.data+" ");
            tmp=tmp.next;
        }
    }
    public void addNode(int d){//增加结点
        Node newNode=new Node(d);
        if(head==null){
            head=newNode;return;
        }
        Node tmp=head;
        while(tmp.next!=null){//找到尾节点
            tmp=tmp.next;
        }tmp.next=newNode;
    }
    public int length(Node head){//计算链表的长度
        int length=0;
        Node tmp=head;
        while(tmp!=null){
            length++;
           // System.out.println("当前链表长度为"+length);
            tmp=tmp.next;
        }return length;
    }
   
    public boolean deleteNode(int index){//删除第index个结点
        JavaApplication12 ja=new JavaApplication12();
          System.out.println("链表长度为"+ja.length(head));
        if(index<1||index>ja.length(head)){
            return false;
        }
        if(index==1){
            head=head.next;
            return true;
        }
        int i=1;
        Node preNode =head;
        Node curNode =preNode.next;
        while(curNode!=null)
        {
            if(i==index){//如果找到索引为index的结点
                preNode.next=curNode.next;
                return true;
            }
            preNode =curNode;//表示将preNode指向curNode,向后移动
            curNode = curNode.next;
            i++;
        }return false;
    }
    public static void main(String[] args){
       /* Collection b=new ArrayList();
        //这里是小插曲,集合的Iterator遍历方法
             b.add(90);
             b.add(80);
             b.add(56);
             Iterator it =b.iterator();
             while(it.hasNext()){
               Object obj=  it.next();
                 System.out.println(obj);
               
             }
               int g=80;
                b.remove(g);
                
                  System.out.println("此时集合内有"+b.size()+"个");
             
        //此行之后的代码是删除链表第index个元素     
        Scanner sc =new Scanner(System.in);
        JavaApplication12 jal =new JavaApplication12();
        int n =sc.nextInt();
        int a[]=new int[n];
        for(int i=0;i<n;i++){
            a[i]=sc.nextInt();
        }
          for(int i=0;i<n;i++){
              jal.addNode(a[i]);
          }
         jal.printList();//打印输出没删除之前的元素
      
         boolean bc= jal.deleteNode(2);
         System.out.println(bc);
           jal.printList();//删除之后打印输出现在的链表元素
    }
}*/
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值