JAVA经典算法40题(4)

阅读更多

【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

程序分析:利用while语句,条件为输入的字符不为 '\n '.

import java.util.Scanner;
public class ex7 {
    public static void main(String args[]){
        System.out.println("请输入字符串:");
        Scanner scan=new Scanner(System.in);
        String str=scan.next();
        String E1="[\u4e00-\u9fa5]";
        Sintrting E2="[a-zA-Z]";
        countH=0;
        int countE=0;
        char[] arrChar=str.toCharArray();
        String[] arrStr=new String[arrChar.length];
        for (int i=0;i
            arrStr[i]=String.valueOf(arrChar[i]);
        }
        for (String i: arrStr ){
            if (i.matches(E1)){
                countH++;
            }
            if (i.matches(E2)){
                countE++;
            }
        }
        System.out.println("汉字的个数"+countH);
        System.out.println("字母的个数"+countE);
    }
}

 

【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

程序分析:关键是计算出每一项的值。

import java.io.*;
public class Sumloop {
    public static void main(String[] args) throws IOException{
        int s=0;
        String output="";
        BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("请输入a的值");
        String input =stadin.readLine();
        for(int i =1;i<=Integer.parseInt(input);i++){
            output += input;
            int a = Integer.parseInt(output) ;
            s+=a;
        }
        System.out.println(s);
    }
}

 另解:

import java.io.*;
public class Sumloop {
    public static void main(String[] args) throws IOException{
        int s=0;
        int n;
        int t=0;
        BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
        String input = stadin.readLine();
        n= Integer.parseInt(input);
        for(int i=1;i<=n;i++){
            t=t*10+n;
            s=s+t;
            System.out.println(t);
        }
        System.out.println(s);
    }
}

 

你可能感兴趣的:(JAVA,经典算法,IT)