必威-必威-欢迎您

必威,必威官网企业自成立以来,以策略先行,经营致胜,管理为本的商,业推广理念,一步一个脚印发展成为同类企业中经营范围最广,在行业内颇具影响力的企业。

从出生后第3个月起每个月都生一对兔子,小兔子

2019-09-27 22:08 来源:未知

回文字符串

材质来源于:

支行协会

JAVA的经文算法题,JAVA杰出算法题

资料来源:

【程序1】   标题:古典难题:有一对兔子,从出生后第7个月起各样月都生一对兔子,小兔子长到第三个月后每一种月又生一对兔子,借使兔子都不死,问各种月的兔子总数为多少?
1.主次解析:兔子的原理为数列1,1,2,3,5,8,13,21....
public class Demo01 {
    public static void main(String args[]) {
        for (int i = 1; i <= 20; i++)
            System.out.println(f(i));
    }
    public static int f(int x) {
        if (x == 1||x == 2)
            return 1;
        else
            return f(x - 1) + f(x - 2);
    }
}

【程序2】   标题:判别101-200里头有稍许个素数,并出口全数素数。
1.程序分析:判别素数的方法:用多少个数分别去除2到sqrt(这么些数),假如能被整除,则注明此数不是素数,反之是素数。
public class Demo02{
    public static void main(String[] args){
        for(int i=2;i<=200;i++){
            boolean flag=true;
            for(int j=2;j<i;j++){
                if(i%j==0){
                    flag=false;
                    break;
                }
            }
            if(flag==true){
                System.out.print(" "+i);
            }
        }
    }
}

【程序3】   标题:打字与印刷出装有的 姚女子花剑数 ,所谓 天葱数 是指二个几个人数,其各位数字立方和非常该数本人。比方:153是二个 天葱数 ,因为153=1的贰回方+5的三回方+3的叁次方。
1.顺序解析:利用for循环调整100-9玖拾柒个数,每一种数分解出个位,10位,百位。
public class Demo03 {
    public static void main(String args[]) {
        math mymath = new math();
        for (int i = 100; i <= 999; i++)
            if (mymath.shuixianhua(i) == true)
                System.out.println(i);
    }
}
class math {
    public boolean shuixianhua(int x) {
        int i = 0, j = 0, k = 0;
        i = x/100;
        j = (x%100)/10;
        k = x%10;
        if (x == i*i*i + j*j*j + k*k*k)
            return true;
        else
            return false;
    }
}

【程序4】   题目:将一个正整数分解质因数。举例:输入90,打字与印刷出90=2*3*3*5。
1.顺序剖判:对n举行分解质因数,应先找到三个比一点都不大的质数i,然后按下述步骤达成:
(1)假若这么些质数恰等于n,则表达分解质因数的历程已经甘休,打字与印刷出就能够。
(2)如若n > i,但n能被i整除,则应打字与印刷出i的值,并用n除以i的商,作为新的正整数你,重复实施第一步。
(3)假设n不能够被i整除,则用i+1作为i的值,重复实行第一步。
import java.util.Scanner;
public class Demo04 {
    public Demo04() {
        super();
    }
    public void fenjie(int n) {
        for (int i = 2; i <= n; i++) {
            if (n % i == 0) {
                System.out.print(i);
                if(n!=i){
                    System.out.print("*");
                }
                fenjie(n/i);
            }
        }
        System.exit(0); //退出程序
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入N的值:");
        int N = in.nextInt();
        System.out.print( "分解质因数:" + N +"=");
        new Demo04().fenjie(N);
    }
}

【程序5】   标题:利用标准运算符的嵌套来成功此题:学习战表=90分的同班用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序深入分析:(a>b)?a:b那是规范化运算符的主干例子。
import java.util.Scanner;
public class Demo05 {
    public static void main(String[] args) {
        System.out.println("请输入N的值:");
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        System.out.println(N >= 90 ?"A": (N >= 60 ? "B":"C"));
    }
}

【程序6】   标题:输入七个正整数m和n,求其最大公约数和最小公倍数。
1.程序解析:利用辗除法。
import java.util.Scanner;
public class Demo06 {
    public static void main(String[] args){
        int a,b,m,n;
        Scanner in=new Scanner(System.in);
        System.out.println("请输入三个正整数:");
        a=in.nextInt();
        System.out.println("再输入三个正整数:");
        b=in.nextInt();
        commonDivisor use=new commonDivisor();
        m=use.commonDivisor(a,b);
        n=a*b/m;
        System.out.println("最大左券数:"+m);
        System.out.println("最小公倍数:"+n);
    }
}
class commonDivisor{
    public int commonDivisor(int x,int y){
        if(x<y){
            int t=x;
            x=y;
            y=t;
        }
        while(y!=0){
            if(x==y)return x;
            else{
                int k=x%y;
                x=y;
                y=k;
            }
        }
        return x;
    }
}

【程序7】   题目:输入一行字符,分别总计出里面乌Crane语字母、空格、数字和其他字符的个数。
1.主次深入分析:利用for循环语句,if条件语句。
import java.util.Scanner;

public class Demo07 {
    public static void main(String[] args){
        System.out.println("请输入一个字符串;");
        Scanner in=new Scanner(System.in);
        String str=in.nextLine();
        char[] ch=str.toCharArray();
        count use=new count();
        use.count(ch);
    }
}
class count{
    int digital,character,blank,other;
    public void count(char[] arr){
        for(int i=0;i<arr.length;i++){
            if(arr[i]>='0'&&arr[i]<='9'){
                digital++;
            }else if((arr[i]>='a'&&arr[i]<='z')||(arr[i]>='A'&&arr[i]<='Z')){
                character++;
            }else if(arr[i]==' '){
                blank++;
            }else{
                other++;
            }
        }
        System.out.println("数字个数:"+digital);
        System.out.println("匈牙利语字母个数:"+character);
        System.out.println("空格个数:"+blank);
        System.out.println("其余字符个数:"+other);
    }
}

【程序8】   标题:求s = a + aa + aaa + aaaa + aa...a的值,个中a是二个数字。举例2 + 22 + 222 + 2222 + 22222(此时共有5个数相加),多少个数相加有键盘调整。
1.主次解析:关键是计算出各种的值。
import java.util.Scanner;
public class Demo08 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println(请输入a的值);
        int a = in.nextInt();
        System.out.println(请输入n个数);
        int n = in.nextInt();
        int s = 0,t=0;
        for (int i = 1; i <= n; i++) {
            t += a;
            a = a*10;
            s += t;
        }
        System.out.println(s);
    }
}

【程序9】   题目:一个数就算恰巧等于它的因子之和,这几个数就称为"完数"。比方6=1+2+3。编制程序搜索一千以内的持有完数。
public class Demo09 {
    public static void main(String[] args) {
        int s;
        for (int i = 1; i <= 1000; i++) {
            s = 0;
            for (int j = 1; j < i; j++)
                if (i % j == 0)
                    s = s + j;
            if (s == i)
                System.out.print(i + " " );
        }
        System.out.println();
    }
}

public class Demo09{
    public static void main(String[] args) {
        int i,j,sum;          
        for(i=1;i<1000;i++)  
        {
            sum = 0;          
            for(j=1;j<=i/2;j++)   
            {
                if(i%j==0)         
                {
                    sum+=j;        
                }
            }
            if(sum==i)            
            {
                System.out.print(i+" its factors are:   ");       
                for(j=1;j<=i/2;j++)                          
                {
                    if(i%j==0)                                  
                        System.out.print(j+", ");
                }
                System.out.println();
            }
        }
    }
}

【程序10】 标题:一个球从100米高度自由落下,每一回落地后反跳回原高度的四分之二;再落下,求它在第11次降地时,共通过多少米?第拾三回反弹多高?
public class Demo10 {
    public static void main(String[] args) {
        double s = 0;
        double h = 100;
        for (int i = 1; i <= 10; i++) {
            s += h;
            h = h/2;
            s += h;
        }
        System.out.println("经过路程:"+s);
        System.out.println("反弹中度:"+h);
    }
}

【程序11】   标题:有1、2、3、4个数字,能整合多少个互区别样且无重复数字的多少人数?都以有个别?
1.程序解析:可填在百位、十二人、个位的数字都是1、2、3、4。组成全部的排列后再去掉不知足条件的排列。   
public class Demo11 {
    public static void main(String[] args) {
        int count = 0;
        for (int i = 1; i <= 4; i++)
          for (int j = 1; j <= 4; j++)
            for (int k = 1; k <= 4; k++)
              if (i != j && j != k && i != k) {
            count += 1;
            System.out.println(i*100 + j*10 + k);
              }
        System.out.println("共" + count + "个三个人数");
    }
}

【程序12】  标题:公司发放的奖金依照利益提成。利益(I)低于或等于10万元时,奖金可提一成;利益当先10万元,低于20万元时,低于10万元的片段按十分之一提成,高于10万元的一对,可提成7.5%;20万到40万之内时,高于20万元的部分,可提成5%;40万到60万中间时超越40万元的局地,可提成3%;60万到100万里头时,高于60万元的一部分,可提成1.5%,高于100万元时,当先100万元的部分按1%提成,从键盘输入上一个月赚钱lirun,求应发放奖金总额sum?
1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
import java.util.Scanner;
public class Demo12 {
    public static void main(String[] args) {
        double sum;
        System.out.println("输入前段时间创收:(万元)");
        Scanner in = new Scanner(System.in);
        double lirun = in.nextDouble();
        if (lirun <= 10) {
            sum = lirun * 0.1;
        } else if (lirun <= 20) {
            sum = 10*0.1 + (lirun - 10) * 0.075;
        } else if (lirun <= 40) {
            sum = 10*0.1 + 10*0.075 + (lirun - 20) * 0.05;
        } else if (lirun <= 60) {
            sum = 10*0.1 + 10*0.075 + 10*0.05 + (lirun - 40) * 0.03;
        } else if (lirun <= 100) {
            sum = 10*0.1 + 10*0.075 + 10*0.05 + 10*0.03 + (lirun - 60) * 0.015;
        } else {
            sum = 10*0.1 + 10*0.075 + 10*0.05 + 10*0.03 + 10*0.015

  • (lirun - 100) * 0.01;
            }
            System.out.println("应发的奖金是:"+sum+"(万元)");
        }
    }

【程序13】   标题:叁个子弹头,它助长100后是八个通通平方数,加上168又是一个一心平方数,请问该数是有一点?
1.顺序深入分析:在10万以内推断,先将该数加上100后再开药方,再将该数加上168后再开药方,倘若开药方后的结果满意如下条件,正是结果。请看具体解析:
public class Demo13 {
    public static void main(String[] args) {
        for(int x=1;x<100000;x++){
          if(Math.sqrt(x+100)%1==0)
          if(Math.sqrt(x+100+168)%1==0)
            System.out.println(x+"加上100后是叁个通通平方数,加上168又是八个一心平方数");
        }
    }
}

【程序14】 标题:输入某年某月某日,判别这一天是那个时候的第几天?
1.顺序解析:以十二月5日为例,应该先把前四个月的加起来,然后再增多5天即本月的第几天,特殊情状,闰年且输入月份大于3时需思索多加一天。
import java.util.Calendar;
import java.util.Scanner;
public class Demo14 {
    public static void main(String[] args) {
        System.out.println("请输入年,月,日:");
        Scanner in = new Scanner(System.in);
        int year = in.nextInt();
        int month = in.nextInt();
        int day = in.nextInt();
        Calendar cal = Calendar.getInstance();
        cal.set(year, month - 1, day);
        int sum = cal.get(Calendar.DAY_OF_YEAR);
        System.out.println("这一天是那个时候的第" + sum +"天");
    }
}

import java.util.*;
public class Demo14 {
    public static void main(String[] args){
        int year,month,day,sum=0;
        Scanner in=new Scanner(System.in);
        System.out.println("输入年:");
        year=in.nextInt();
        System.out.println("输入月:");
        month=in.nextInt();
        System.out.println("输入日:");
        day=in.nextInt();
        
        switch(month){
        case 1:
            sum=0;
            break;
        case 2:
            sum=31;
            break;
        case 3:
            sum=59;
            break;
        case 4:
            sum=90;
            break;
        case 5:
            sum=120;
            break;
        case 6:
            sum=151;
            break;
        case 7:
            sum=181;
            break;
        case 8:
            sum=212;
            break;
        case 9:
            sum=243;
            break;
        case 10:
            sum=273;
            break;
        case 11:
            sum=304;
            break;
        case 12:
            sum=334;
            break;
            default:
                System.out.println("wrong input!");
                return;
        }
        
        sum=sum+day;
        boolean leap;
        if(year%400==0||(year%4==0&&year%100!=0)){
            leap=true;
        }else {
            leap=false;
        }
        if(leap&&month>2){
            sum++;
        }
        
        System.out.println("It is the "+sum+"th day.");
    }
}

import java.util.Scanner;
public class Demo14 {
    public static void main(String[] args){
        System.out.println("请输入年 月 日:");
        Scanner in=new Scanner(System.in);
        int year=in.nextInt();
        int month=in.nextInt();
        int day=in.nextInt();
        System.out.println("是该年的第"+count(year,month,day)+"天");
    }
    public static int count(int year,int month,int day){
        int sum=0;
        int days=0;
        for(int i=1;i<month;i++){
            switch(i){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                days=31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                days=30;
                break;
            case 2:
                if(year%400==0||year%4==0&&year%100!=0){
                    days=29;
                }else{
                    days=28;
                }
                break;
            }
            sum+=days;
        }
        sum+=day;
        return sum;
    }
}

【程序15】 标题:输入八个整数x,y,z,请把那多个数由小到大出口。
1.前后相继深入分析:我们想办法把最小的数放到x上,先将x与y实行相比,若是x>y则将x与y的值举办沟通,然后再用x与z举行比较,假使x>z则将x与z的值进行置换,这样能使x最小。
import java.util.Arrays;
import java.util.Scanner;
public class Demo15 {
    public static void main(String[] args) {
        System.out.print("请输入八个数:");
        Scanner in = new Scanner(System.in);
        int[] arr = new int[3];
        for (int i = 0; i < 3; i++) {
            arr[i] = in.nextInt();
        }
        Arrays.sort(arr);
        for (int i=0;i<arr.length;i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

if(x > y) { int t = x; x = y; y = t; } if(x > z) { int t = x; x = z; z = t; } if(y > z) { int t = y; y = z; z = t; }

【程序16】 题目:输出9*9口诀乘法表。
1.顺序深入分析:分行与列思虑,共9行9列,i调节行,j调整列。
并发重复的乘积(全矩形)
public class Demo16 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= 9; j++)
                System.out.print(i + "*" + j + "=" + (i*j) + "t");
            System.out.println();
        }
    }
}
不现重复的乘积(下三角)
public class Demo16 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++)
                System.out.print(i + "*" + j + "=" + (i*j) + "t");
            System.out.println();
        }
    }
}

【程序17】   标题:猴子吃桃难点:猴子第一天摘下多少个桃子,当即吃了五成,还不瘾,又多吃了三个次之天中午又将剩下的水蜜桃吃掉二分之一,又多吃了两个。今后每一天早上都吃了前一天剩
下的六分之三零贰个。到第10天早上想再吃时,见只剩余二个水蜜桃了。求第一天共摘了多少。
1.程序解析:选取逆向思维的法子,从后往前推测。
public class Demo17 {
    public static void main(String[] args) {
        int sum = 1;
        for (int i = 0; i < 9; i++) {
            sum = (sum + 1) * 2;
        }
        System.out.println("第一天共摘"+sum);
    }
}

【程序18】   标题:五个乒球队举办较量,各出多少人。甲队为a,b,c三人,乙队为x,y,z多少人。已抽签决定比赛名单。有人向队员掌握竞赛的名册。a说他不和x比,c说她不和x,z比,请编制程序
序寻觅三队赛手的名单。
public class Demo18 {
    static char[] m = { 'a', 'b', 'c' };
    static char[] n = { 'x', 'y', 'z' };
    public static void main(String[] args) {
        for (int i = 0; i < m.length; i++) {
            for (int j = 0; j < n.length; j++) {
                if (m[i] == 'a' && n[j] == 'x') {
                    continue;
                } else if (m[i] == 'a' && n[j] == 'y') {
                    continue;
                } else if ((m[i] == 'c' && n[j] == 'x')
                        || (m[i] == 'c' && n[j] == 'z')) {
                    continue;
                } else if ((m[i] == 'b' && n[j] == 'z')
                        || (m[i] == 'b' && n[j] == 'y')) {
                    continue;
                } else
                    System.out.println(m[i] + " vs " + n[j]);
            }
        }
    }
}

public class Demo18 {
    public String a, b, c;
    public Demo18(String a, String b, String c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }
    public static void main(String[] args) {
        Demo18 arr_a = new Demo18("a", "b", "c");
        String[] b = { "x", "y", "z" };
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                for (int k = 0; k < 3; k++) {
                 Demo18 arr_b = new Demo18(b[i], b[j], b[k]);
                    if (!arr_b.a.equals(arr_b.b) & !arr_b.b.equals(arr_b.c)
                            & !arr_b.c.equals(arr_b.a) & !arr_b.a.equals("x")
                            & !arr_b.c.equals("x") & !arr_b.c.equals("z")) {
                        System.out.println(arr_a.a + "--" + arr_b.a);
                        System.out.println(arr_a.b + "--" + arr_b.b);
                        System.out.println(arr_a.c + "--" + arr_b.c);
                    }
                }
            }
        }
    }
}

【程序19】  标题:打印出如下图案(菱形)

1.顺序深入分析:先把图纸分成两片段来对待,前四行三个规律,后三行八个法规,利用再度for循环,第一层调整行,第二层调控列。

三角形:
*
***
******
********
******
***
*
public class Demo19 {
    public static void main(String[] args) {
        int i=0;
        int j=0;
        for ( i = 1; i <= 4; i++) {
            for ( j = 1; j <= 2 * i - 1; j++)
                System.out.print("*");
            System.out.println();
        }
        for ( i = 3; i >= 1; i--) {
            for ( j = 1; j <= 2 * i - 1; j++)
                System.out.print("*");
            System.out.println();
        }
    }
}

菱形:
   *
  ***
 *****
*******
 *****
  ***
   *
public class Demo19 {
    public static void main(String[] args) {
        int i = 0;
        int j = 0;
        for (i = 1; i <= 4; i++) {
            for (int k = 1; k <= 4 - i; k++)
                System.out.print( " " );
            for (j = 1; j <= 2 * i - 1; j++)
                System.out.print("*");
            System.out.println();
        }
        for (i = 3; i >= 1; i--) {
            for (int k = 1; k <= 4 - i; k++)
                System.out.print( " " );
            for (j = 1; j <= 2 * i - 1; j++)
                System.out.print("*");
            System.out.println();
        }
    }
}

【程序20】   标题:有一分数类别:2/1,3/2,5/3,8/5,13/8,21/13...求出这么些数列的前20项之和。
1.前后相继深入分析:请抓住分子与分母的变化规律。   
public class Demo20 {
    public static void main(String[] args) {
        float fm = 1.0f;
        float fz = 1.0f;
        float temp;
        float sum = 0f;
        for (int i = 0; i < 20; i++) {
            temp = fm;
            fm = fz;
            fz = fz + temp;
            System.out.println((int) fz + "/" + (int) fm);
            sum += fz / fm;
        }
        System.out.println(sum);
    }
}

【程序21】   题目:求1+2!+3!+...+20!的和。
1.程序深入分析:此程序只是把累加形成了累乘。
public class Demo21 {
    public static void main(String[] args) {
        long sum = 0;
        long fac = 1;
        for (int i = 1; i <= 20; i++) {
            fac = fac * i;
            sum += fac;
        }
        System.out.println(sum);
    }
}

【程序22】   标题:利用递归方法求5!。
1.主次分析:递归公式:f(n)=f(n-1)*4!
import java.util.Scanner;
public class Demo22 {
    public static long fac(int n) {
        long value = 0;
        if (n == 1 || n == 0) {
            value = 1;
        } else if (n > 1) {
            value = n * fac(n - 1);
        }
        return value;
    }
    public static void main(String[] args) {
        System.out.println("请输入三个数:");
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        System.out.println(n + "的阶乘为:" + fac(n));
    }
}

【程序23】   标题:有5个人坐在一齐,问第三人有一点岁?他说比第2个人民代表大会2岁。问首个人年纪,他说比首个人民代表大会2岁。问第三个人,又说比第2人民代表大会两岁。问第2民用,说比第一私家大两
岁。最终问第三个体,他身为10岁。请问第几人多大?
1.主次深入分析:利用递归的措施,递归分为回推和递推多个级次。要想清楚第多个人年纪,需精晓第两个人的年龄,依次类推,推到第壹个人(10岁),再往回推。
一直求解:
public class Demo23 {
    public static void main(String[] args) {
        int n = 10;
        for (int i = 0; i < 4; i++) {
            n = n + 2;
        }
        System.out.println("第五私有" + n + "岁");
    }
}
递归求解:
public class Demo23 {
    public static int getAge(int n) {
        if (n == 1) {
            return 10;
        }
        return 2 + getAge(n - 1);
    }
    public static void main(String[] args) {
        System.out.println("第几个的年龄为" + getAge(5));
    }
}

【程序24】   标题:给贰个十分的少于5位的正整数,供给:一、求它是贰位数,二、逆序打字与印刷出各位数字。
主旨原方法:
import java.util.Scanner;
public class Demo24 {
    public static void main(String[] args) {
        Demo24 use = new Demo24();
        System.out.println("请输入:");
        Scanner in = new Scanner(System.in);
        long a = in.nextLong();
        if (a < 0 || a >= 100000) {
            System.out.println("Error Input, please run this program Again!");
            System.exit(0);
        }
        if (a >= 0 && a <= 9) {
            System.out.println(a + "是壹个人数");
            System.out.println("按逆序输出是:"  + a);
        } else if (a >= 10 && a <= 99) {
            System.out.println(a + "是多少人数");
            System.out.println("按逆序输出是:");
            use.converse(a);
        } else if (a >= 100 && a <= 999) {
            System.out.println(a + "是四位数");
            System.out.println("按逆序输出是:");
            use.converse(a);
        } else if (a >= 1000 && a <= 9999) {
            System.out.println(a + "是二人数");
            System.out.println("按逆序输出是:");
            use.converse(a);
        } else if (a >= 10000 && a <= 99999) {
            System.out.println(a + "是五个人数");
            System.out.println("按逆序输出是:");
            use.converse(a);
        }
    }
    public void converse(long l) {
        String s = Long.toString(l);
        char[] ch = s.toCharArray();
        for (int i = ch.length - 1; i >= 0; i--) {
            System.out.print(ch[i]);
        }
    }
}
个人版方法:
import java.util.Scanner;
public class Demo24 {
    public static void main(String[] args) {
        System.out.println("请输入:");
        Scanner in = new Scanner(System.in);
        String str = in.next();
        if (str.matches("\d+")) { //正则表明式
            System.out.println("输入的是" + str.length() + "位数");
            StringBuffer buf = new StringBuffer(str);
            System.out.println(buf.reverse());//字符串反转
        }
    }
}

【程序25】   标题:一个5位数,决断它是或不是回文数。即12321是回文数,个位与万位同样,11个人与千位同样。
原方法:
import java.util.Scanner;
public class Demo25 {
    static int[] a = new int[5];
    static int[] b = new int[5];
    public static void main(String[] args) {
        boolean is = false;
        System.out.println("Please input:");
        Scanner in = new Scanner(System.in);
        long l = in.nextLong();
        if (l > 99999 || l < 10000) {
            System.out.println("Input error, please input again!");
            l = in.nextLong();
        }
        for (int i = 4; i >= 0; i--) {
            a[i] = (int) (l / (long) Math.pow(10, i));
            l = (l % (long) Math.pow(10, i));
        }
        System.out.println();
        for (int i = 0, j = 0; i < 5; i++, j++) {
            b[j] = a[i];
        }
        for (int i = 0, j = 4; i < 5; i++, j--) {
            if (a[i] != b[j]) {
                is = false;
                break;
            } else {
                is = true;
            }
        }
        if (is == false) {
            System.out.println("is not a Palindrom!");
        } else if (is == true) {
            System.out.println("is a Palindrom!");
        }
    }
}
个人版:
import java.util.Scanner;
public class Demo25 {
    public static void main(String[] args) {
        System.out.println("请输入:");
        Scanner in = new Scanner(System.in);
        String str = in.next();
        int l = Integer.parseInt(str);//调换来整数
        if (l < 10000 || l > 99999) {
            System.out.println("输入错误!");
            System.exit(0);
        }
        boolean is=false;
        char[] ch = str.toCharArray();
        for(int i=0;i<ch.length/2;i++){
            if(ch[i]!=ch[ch.length-i-1]){
                is=false;
            }else{
                is=true;
            }
        }
        if(is){
            System.out.println("那是一个回文!");
        }else{
            System.out.println("不是贰个回文!");
        }
    }
}

【程序26】   标题:请输入星期几的第贰个字母来决断一下是星期几,假使第二个字母相同,则继续判定第二个字母。
1.前后相继深入分析:用状态语句相比好,若是第二个字母同样,则推断用状态语句或if语句剖断第4个假名。
import java.util.Scanner;
public class Demo26 {
    public static void main(String[] args) {
        char weekSecond;//保存第二字母
        Scanner in = new Scanner(System.in);//接收客商输入
        System.out.println("请输入星期的首先个字母:");
        String letter = in.next();
        if (letter.length() == 1) {//推断客户调节台输入字符串长度是不是是一个字母
            char weekFirst = letter.charAt(0);//取第三个字符
            switch (weekFirst) {
            case 'm':
            case 'M':
                System.out.println("星期一(Monday)");
                break;
            case 't':
            case 'T':
                System.out.print("由于星期四(Tuesday)与周二(Thursday)均以字母T开首,故需输入第三个字母技艺科学判断:");
                letter = in.next();                
                if (letter.length() == 1) {
                    weekSecond = letter.charAt(0);
                    if (weekSecond == 'U' || weekSecond == 'u') {
                        System.out.println("星期二(Tuesday)");
                        break;
                    } else if (weekSecond == 'H' || weekSecond == 'h') {
                        System.out.println("星期四(Thursday)");
                        break;
                    } else {
                        System.out.println("Error!");
                        break;
                    }
                } else {
                    System.out.println("输入错误,只可以输入二个字母,程序截止!");
                    break;
                }
            case 'w':
            case 'W':
                System.out.println("星期三(Wednesday)");
                break;
            case 'f':
            case 'F':
                System.out.println("星期五(Friday)");
                break;
            case 's':
            case 'S':
                System.out.print("由于星期天(Saturday)与周末(Sunday)均以字母S最早,故需输入第一个字母本事正确判别:");
                letter = in.next();
                if (letter.length() == 1) {
                    weekSecond = letter.charAt(0);
                    if (weekSecond == 'A' || weekSecond == 'a') {
                        System.out.println("星期六(Saturday)");
                        break;
                    } else if (weekSecond == 'U' || weekSecond == 'u') {
                        System.out.println("星期日(Sunday)");
                        break;
                    } else {
                        System.out.println("Error!");
                        break;
                    }
                } else {
                    System.out.println("输入错误,只可以输入多个假名,程序截至!");
                    break;
                }
            default:
                System.out.println("输入错误,无法辨别的星期值第三个字母,程序甘休!");
                break;
            }
        } else {
            System.out.println("输入错误,只好输入二个字母,程序甘休!");
        }
    }
}

【程序27】   标题:求100之内的素数
public class Demo27 {
    public static void main(String args[]) {
        int sum, i;
        for (sum = 2; sum <= 100; sum++) {
            for (i = 2; i <= sum / 2; i++) {
                if (sum % i == 0)
                    break;
            }
            if (i > sum / 2)
                System.out.println(sum + "是素数");
        }
    }
}

public class Demo27{
    public static void main(String args[]){
        int w=1;
        for(int i=2;i<=100;i++){
            for(int j=2;j<i;j++){
                w=i%j;
                if(w==0)break;
                }
            if(w!=0)
                System.out.println(i+"是素数");
        }
    }
}

【程序28】   标题:对十三个数进行排序。
1.主次深入分析:可以使用选取法,即从后9个比较进程中,选拔贰个小小的的与第多少个因素调换,后一次类推,即用第四个要素与后8个开展对比,并进行调换。
本例代码为扭转随机十二个数排序,并输入1个数,插入重排序输出:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class Demo28 {
    public static void main(String[] args) {
        int arr[] = new int[11];
        Random r = new Random();
        for (int i = 0; i < 10; i++) {
            arr[i] = r.nextInt(100) + 1; //获得13个100以内的卡尺头
        }
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] +"t");
        }
        System.out.print("nPlease Input a int number:" );
        Scanner in = new Scanner(System.in);
        arr[10] = in.nextInt();
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] +"t");
        }
    }
}
私家代码:
import java.util.Arrays;
import java.util.Scanner;
public class Demo28 {
    public static void main(String[] args) {
        System.out.println("请输入10个数:");
        Scanner in = new Scanner(System.in);
        int[] arr = new int[10];
        for (int i = 0; i < 10; i++) {
            arr[i] = in.nextInt();
        }
        System.out.println("原数组为:");
        for (int x : arr) {//foreach遍历
            System.out.print( x + "t");
        }
        Arrays.sort(arr);
        System.out.println();
        System.out.println("排序后为:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "t");
        }
    }
}

【程序29】   题目:求一个3*3矩阵主对角线成分之和。
1.程序解析:利用再度for循环调节输入二维数组,再将a[i][i]加上后输出。
public class Demo29 {
    public static void main(String[] args) {
        double sum = 0;
        int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 7, 8 } };
        for (int i = 0; i < 3; i++)
            for (int j = 0; j < 3; j++) {
                if (i == j)
                    sum = sum + array[i][j];
            }
        System.out.println(sum);
    }
}
主负对角线:
 for(i=0;i<n;i++)
         for(j=0;j<n;j++)
         {
            if(i==j) sum1+=a[i][j];
            if(i+j==n-1) sum2+=a[i][j];
         }

【程序30】   标题:有多少个已经排好序的数组。现输入二个数,要求按原本的原理将它插入数组中。
1.先后剖判:首先判别此数是或不是当先最终三个数,然后再思考插入中间的数的动静,插入后此因素之后的数,依次后移八个地点。
import java.util.Random;
public class Demo30 {
    public static void main(String[] args) {
        int temp = 0;
        int arr[] = new int[12];
        Random r = new Random();
        for (int i = 0; i <= 10; i++)
            arr[i] = r.nextInt(1000);
        for (int i = 0; i <= 10; i++)
            System.out.print(arr[i] + "t");
        for (int i = 0; i <= 9; i++)
            for (int k = i + 1; k <= 10; k++)
                if (arr[i] > arr[k]) {
                    temp = arr[i];
                    arr[i] = arr[k];
                    arr[k] = temp;
                }
        System.out.println();
        for (int k = 0; k <= 10; k++)
            System.out.print(arr[k] + "t");
        arr[11] = r.nextInt(1000);
        for (int k = 0; k <= 10; k++)
            if (arr[k] > arr[11]) {
                temp = arr[11];
                for (int j = 11; j >= k + 1; j--)
                    arr[j] = arr[j - 1];
                    arr[k] = temp;
            }
        System.out.println();
        for (int k = 0; k <= 11; k++)
            System.out.print(arr[k] + "t");
    }
}

【程序31】   标题:将八个数组逆序输出。
次第深入分析:用第二个与终极叁个置换。
用逆序循环调控变量输出:
public class Demo31 {
    public static void main(String[] args) {
        int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
        for (int i = a.length - 1; i >= 0; i--) {
            System.out.print(a[i] + " ");
        }
    }
}

【程序32】   题目:取贰个子弹头a从右端起始的第4~7位数字。
import java.util.*;
public class Demo32 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("请输入三个7位以上的正整数:");
        long l = in.nextLong();
        String str = Long.toString(l);
        char[] ch = str.toCharArray();
        int j=ch.length;
        if (j<7){System.out.println("输入错误!");
        } else {
            System.out.println("截取从右端发轫的4~7位是:"+ch[j-7]+ch[j-6]+ch[j-5]+ch[j-4]);
        }
    }
}

import java.util.Scanner;
public class Demo32{
    public static void main(String[] args) {
        int a = 0;
        Scanner s = new Scanner(System.in);
        long b = s.nextLong();
        a = (int) (b % 10000000 / 1000);
        System.out.println(a);
    }
}

【程序33】   标题:打印出杨辉三角形(须要打字与印刷出10行如下图)
1.前后相继深入分析:
1
1   1
1   2   1
1   3   3   1
1   4   6   4   1
1   5   10   10   5   1
public class Demo33 {
    public static void main(String args[]) {
        int i, j;
        int a[][];
        int n = 10;
        a = new int[n][n];
        for (i = 0; i < n; i++) {
            a[i][i] = 1;
            a[i][0] = 1;
        }
        for (i = 2; i < n; i++) {
            for (j = 1; j <= i - 1; j++) {
                a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
            }
        }
        for (i = 0; i < n; i++) {
            for (j = 0; j <= i; j++) {
                System.out.printf(a[i][j] + "t");
            }
            System.out.println();
        }
    }
}

【程序34】   标题:输入3个数a,b,c,按大小顺序输出。
(也可相互相比沟通排序)
import java.util.Arrays;
public class Demo34 {
    public static void main(String[] args) {
        int[] arrays = { 800, 56, 500 };
        Arrays.sort(arrays);
        for (int n = 0; n < arrays.length; n++)
            System.out.println(arrays[n]);
    }
}

if(x > y) { int t = x; x = y; y = t; } if(x > z) { int t = x; x = z; z = t; } if(y > z) { int t = y; y = z; z = t; }

【程序35】   标题:输入数组,最大的与第多个成分沟通,最小的与最后一个因素调换,输出数组。

import java.util.*;
public class Demo35 {
    public static void main(String[] args) {
        int i, min=0, max=0, n, temp1, temp2;
        int a[];
        System.out.println("定义数组的长度:");
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        a = new int[n];
        for (i = 0; i < n; i++) {
            System.out.print("输入第" + (i + 1) + "个数据:");
            a[i] = in.nextInt();
        }

        for (i = 1; i < n; i++) {
            if (a[i] > a[max])
                max = i;  
            if (a[i] < a[min])
                min = i;  
        }

        temp1 = a[0];
        a[0] = a[max];
        a[max] = temp1;

        temp2 = a[min];  

        if (min != 0) { // 借使最小值不是a[0],实施下边
            a[min] = a[n - 1];
            a[n - 1] = temp2;  
        } else {  //借使最小值是a[0],推行上面
            a[max] = a[n - 1];
            a[n - 1] = temp1;
        }
        for (i = 0; i < n; i++) {  
            System.out.print(a[i] + " " );
        }
    }
}

【程序36】   标题:有n个整数,使其前边各数顺序向后移m个职位,最后m个数产生最前边的m个数

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Demo36 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("输入数字个数n:");
        int n = in.nextInt();
        System.out.println("输入后移位数m:");
        int m = in.nextInt();
        LinkedList<Integer> list = new LinkedList<Integer>();
        for (int i = 0; i < n; i++) {
            System.out.println("请输入第"+(i+1)+"个数:");
            list.add(in.nextInt());
        }
        System.out.println("原数据排序为:");
        for (int t : list) {
            System.out.print(t + " " );
        }
        System.out.println();
        List<Integer> temp1 = list.subList(list.size() - m, list.size());
        List<Integer> temp2 = list.subList(0, list.size() - m);
        temp2.addAll(0, temp1);
        System.out.println("移动后排序为;");
        for (int t : temp2) {
            System.out.print(t + " " );
        }
    }
}

import java.util.*;
public class Demo36{
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);        
        System.out.println("请定义数组的长度:");
        int n=in.nextInt();
        System.out.println("请输入移动的位数:");
        int m=in.nextInt();
        int [] arr=new int [n];
        int [] brr=new int [n];
        for(int i=0;i<n;i++){
            System.out.println("请输入第"+(i+1)+"个数:");
            arr[i]=in.nextInt();
        }
        
        System.out.println("排序前:");
        for(int i=0;i<n;i++){
            System.out.print(arr[i]+" ");
        }
        System.out.println();
        
        for(int i=0;i<m;i++){
            brr[i]=arr[n-m+i];
        }
        for(int i=0;i<n-m;i++){
            arr[m+i]=arr[i];
        }
        for(int i=0;i<m;i++){
            arr[i]=brr[i];
        }
        
        System.out.println("排序后:");
        for(int i=0;i<n;i++){
            System.out.print(arr[i]+" ");
        }
    }
}

【程序37】   标题:有n个人围成一圈,顺序排号。从第二个体初始报数(从1到3报数),凡报到3的人脱病逝界,问最终留给的是原来第几号的那位。
(Joseph环难点,百度百科不经常间复杂度最简便易行的数学方法)
原例代码:
import java.util.Scanner;
public class Demo37 {
    public static void main(String[] args) {
        System.out.println("请输人数n:");
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        boolean[] arr = new boolean[n];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = true; //下标为TRUE时表明还在圈里
        }
        int leftCount = n;
        int countNum = 0;
        int index = 0;
        while (leftCount > 1) {
            if (arr[index] == true) { //当在圈里时
                countNum++;  //报数递加
                if (countNum == 3) { //报数为3时
                    countNum = 0; //从零伊始一连报数
                    arr[index] = false; //此人退出世界
                    leftCount--; //剩余名数减一
                }
            }
            index++; //每报二回数,下标加一
            if (index == n) { //是循环数数,当下标大于n时,表达已经数了一圈,
                index = 0; //将下标设为零双重最早。
            }
        }
        for (int i = 0; i < n; i++) {
            if (arr[i] == true) {
                System.out.println(i);
            }
        }
    }
}
村办代码1:
import java.util.Scanner;
public class Demo37 {
    public static void main(String[] args) {
        System.out.println("请输入人数:");
        Scanner in = new Scanner(System.in);
        int[] a = new int[in.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i] = 1;
        }
        int left = a.length;
        int j = 0;
        int num = 0;
        while (left > 1) {
            if (a[j] == 1) {
                num++;
            }
            if (num == 3) {
                a[j] = 0;
                num = 0;
                left--;
            }
            j++;
            if (j == a.length) {
                j = 0;
            }
        }
        for (int i = 0; i < a.length; i++) {
            if (a[i] == 1) {
                System.out.println("最终留下的人是"+ (i + 1) + "号");
                break;
            }
        }
    }
}
个人代码2:
import java.util.LinkedList;
import java.util.Scanner;
public class Demo37 {
    public static void main(String[] args) {
        LinkedList<Integer> l = new LinkedList<Integer>();
        System.out.println("请输入人数:");
        Scanner in = new Scanner(System.in);
        int len = in.nextInt();
        for (int i = 0; i < len; i++) {
            l.add(i + 1);
        }
        int sum = 0;
        int temp = 0;
        for (int i = 0; sum != len - 1;) {
            if (l.get(i) != 0) {
                temp++;
            }
            if (temp == 3) {
                l.remove(i);
                l.add(i, 0);
                temp = 0;
                sum++;
            }
            i++;
            if (i == l.size()) {
                i = 0;
            }
        }
        for (int t : l) {
            if (t != 0) {
                System.out.println("最后留给的人是" + t + "号");
            }
        }
    }
}

【程序38】   标题:写三个函数,求叁个字符串的长度,在main函数中输入字符串,并出口其长度。

import java.util.Scanner;
public class Demo38 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入二个字符串:");
        String mys = in.next();
        System.out.println(str_len(mys));
    }
    public static int str_len(String x) {
        return x.length();
    }
}

import java.util.Scanner;
public class Demo38 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入三个字符串:");
        String mys = in.next();
        System.out.println(mys.length());
    }
}

【程序39】  标题:编写二个函数,输入n为偶数时,调用函数求四分之二+59%+...+1/n,当输入n为奇数时,调用函数1/1+46%+...+1/n
import java.util.Scanner;
public class Demo39 {
    public static double ouShu(int n) {
        double result = 0;
        for (int i = 2; i <= n; i = i + 2) {
            result +=  1 / (double) i;
        }
        return result;
    }
    public static double jiShu(int n) {
        double result = 0;
        for (int i = 1; i <= n; i = i + 2) {
            result += 1 / (double) i;
        }
        return result;
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("输入n的值:");
        int n = in.nextInt();
        if (n % 2 == 0) { //偶数,1/2+1/4+...+1/n
            System.out.println(ouShu(n));
        } else { //奇数,1/1+1/3+...+1/n
            System.out.println(jiShu(n));
        }
    }
}

【程序40】  标题:字符串排序。
(利用容器类中的sort方法)
import java.util.*;
public class Demo40 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("010102");
        list.add("010003");
        list.add("010201");
        Collections.sort(list);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

import java.util.*;

public class Demo40 {
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        System.out.println("请定义字符串的个数:");
        int n=in.nextInt();
        String[] str=new String[n];
        for(int i=0;i<str.length;i++){
            System.out.println("请输入第"+(i+1)+"字符串:");
            str[i]=in.next();
        }
        strSort(n,str);
        System.out.println("字符串排序后:");
        for(int i=0;i<str.length;i++){
            System.out.print(str[i]+" ");
        }
    }
    public static void strSort(int n,String[] arr){
        for(int i=0; i<n; i++) {
            for(int j=i+1; j<n; j++) {
                if(compare(arr[i], arr[j]) == false) {
                    String temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;
                }
            }
        }
    }
    static boolean compare(String s1, String s2) {
        boolean result = true;
        for(int i=0; i<s1.length() && i<s2.length(); i++) {
            if(s1.charAt(i) > s2.charAt(i)) {
                result = false;
                break;
            } else if(s1.charAt(i) <s2.charAt(i)) {
                result = true;
                break;
            } else {
                if(s1.length() < s2.length()) {
                    result = true;
                } else {
                    result = false;
                }
            }
        }
        return result;
    }
}

【程序41】   标题:沙滩上有一批毛桃,五只猴子来分。第一只猕猴把那堆水蜜桃平均分为五份,多了贰个,那只猴子把多的叁个扔入海中,拿走了一份。第三头猴子把多余的黄桃又平均分为五份,又多了叁个,它一律把多的五个扔入海中,拿走了一份,第三、第四、第四只猕猴都以那般做的,问沙滩上原来起码有稍许个光桃?
大旨源码:
public class Demo41 {
    static int ts = 0;// 黄桃总数
    int fs = 1;// 记录分的次数
    static int hs = 5;// 猴子数
    int tsscope = 四千;// 白桃数的取值范围,太大轻松溢出。
    public int fT(int t) {
        if (t == tsscope) {
            // 当白桃数到了最大的取值范围时打消递归
            System.out.println("结束");
            return 0;
        } else {
            if ((t - 1) % hs == 0 && fs <= hs) {
                if (fs == hs) {
                    System.out.println("水蜜桃数=" + ts + "时满意分桃条件");
                }
                fs += 1;
                return fT((t - 1) / 5 * 4);// 再次来到猴子拿走一份后的剩下的总和
            } else {
                // 没满意条件
                fs = 1;// 分的次数重新设置为1
                return fT(ts += 1);// 水蜜桃数加+1
            }
        }
    }
    public static void main(String[] args) {
        new Demo41().fT(0);
    }
}
村办修改:
public class Demo41 {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 6;; i++) {// 起码6个分最后三次
            sum = i;// 桃子数
            for (int j = 0; j < 5; j++) {// 分的次数循环
                if ((sum - 1) % 5 == 0 && j < 5) {// 假如扔四个后能均分5份,继续分
                    sum = (sum - 1) / 5 * 4;// 每分二回剩余水蜜桃数
                    if (j == 4) {// 假使已分5次,且还是能除尽,输出,退出程序
                        System.out.println(i);
                        System.exit(0);
                    }
                }
            }
        }
    }
}

【程序42】   题目:809*??=800*??+9*??+1。个中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
(本题为无解,去掉1有解)
public class Demo42 {
    public static void main(String[] args) {
        for (int i = 10; i < 100; i++) {
            if (809 * i == (800 * i + 9 * i + 1) && 8 * i >= 10 && 8 * i < 100
                    && 9 * i >= 100 && 9 * i < 1000) {
                System.out.println("?? =" + i);
                System.out.println("809*??="+ 809 * i);
                System.exit(0);
            }
        }
    }
}

【程序43】   标题:求0—7所能组成的奇数个数。
强力算法:
public class Demo43 {
    public static boolean isJiShu(int n) {
        if (n % 2 != 0) {
            return true;
        } else {
            return false;
        }
    }
    public static boolean fun(char c) {
        if (c >= '0' && c <= '7') {
            return true;
        } else {
            return false;
        }
    }
    public static void main(String[] args) {
        int count = 0;
        String s;
        for (int i = 0; i < 100000000; i++) {
            s = "" + i;
            boolean flag = true;
            char[] c = s.toCharArray();
            for (int j = 0; j < c.length; j++) {
                if (!fun(c[j])) {
                    flag = false;
                    break;
                }
            }
            if (flag && isJiShu(i)) {
                count++;
            }
            s = "";
        }
        System.out.println("共" + count + "个。");
    }
}
数学算法:
public class Demo43 {
    public static void main(String[] args) {
        // 因为是奇数,所以个位只好是1,3,5,7共4种,前边可不管排列
        int count = 4;// 个位的4种
        // 2位时,十位有8种,个位4种,8×4
        // 3位时,8×8×4……
        for (int i = 1; i < 8; i++) {
            count = 8 * count;
            System.out.println("count:" + count);
        }
    }
}
个体算法:
//组成1位数是4个。
//组成2位数是7*4个。
//组成3位数是7*8*4个。
//组成4位数是7*8*8*4个。
//......
public class Demo43 {
    public static void main (String[] args) {
        int sum=4;
        int j;
        System.out.println("组成1位数是 "+sum+" 个");
        sum=sum*7;
        System.out.println("组成2位数是 "+sum+" 个");
        for(j=3;j<=9;j++){
            sum=sum*8;
            System.out.println("组成"+j+"位数是 "+sum+" 个");
        }
    }
}

【程序44】   标题:三个偶数总能表示为五个素数之和。(注:哥德Bach估计是想证明对别的大于6的本来数n之内的兼具偶数能够代表为三个素数之和)
public class Demo44 {
    public static boolean isSuShu(int x) {
        if (x == 0 || x == 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(x); i++) {
            if (x % i == 0) {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        // 求了下100以内的情形
        for (int i = 0; i < 100; i = i + 2) {
            for (int j = 0; j <= (i + 1) / 2; j++) {
                if (isSuShu(j) && isSuShu(i - j)) {
                    System.out.println(i + "=" + j + "+" + (i - j));
                }
            }
        }
    }
}

public class Demo44{    
    public static void main(String[] args){    
        for (int i=6;i<=100 ;i+=2 ){    
            for (int j=2;j<100 ;j++ ){        
                if(!isPrime(j)||!isPrime(i-j)||j>=i)
                continue;            
                System.out.println(i+"="+j+"+"+(i-j));            
                break;        
            }        
        }    
    }   

    public static boolean isPrime(int n){    
        for (int i=2;i<n ;i++ ){        
            if(n%i==0)return false;    
        }            
        return true;    
    }
}

【程序45】   标题:(1)判定多少个9能被一个素数整除。(2)判定三个整数能被多少个9整除。(原题:多个素数能被多少个9整除)
(一)
public class Demo45 {
    public static boolean isSuShu(int x) {
        if (x == 0 || x == 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(x); i++) {
            if (x % i == 0) {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        int[] a = new int[100];
        int n = 0;
        int num = 0;
        // 长度100的素数数组
        while (n < 100) {
            if (isSuShu(num)) {
                a[n] = num;
                n++;
                num++;
            } else {
                num++;
            }
        }
        /* for (int t : a) {
         System.out.println(t);
         }*/
        String s = "9";
        int index = 0;
        while (s.length() < 9) {
            if (new Integer(s).intValue() % a[index] == 0) {
                System.out.println(s + "%" + a[index] + "=0");
                if (index < 100 - 1) {
                    index++;
                } else {
                    index = 0;
                    s = s + "9";
                }
                // System.exit(0);
            } else {
                if (index < 100 - 1) {
                    index++;
                } else {
                    index = 0;
                    s = s + "9";
                }
            }
        }
    }
}

(二)
import java.util.*; public class Demo45 {
    public static void main (String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("请输入四个大背头:");
        int num = in.nextInt();
        int tmp = num;
        int count = 0;
        for(int i = 0 ; tmp%9 == 0 ;){
            tmp = tmp/9;
            count ++;
        }
        System.out.println(num+" 能够被 "+count+" 个9 整除。");
    }
}
【程序46】   标题:多个字符串连接程序。
import java.util.Scanner;
public class Demo46 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("输入第一个字符串:");
        String s1 = in.next();
        System.out.println("输入第三个字符串:");
        String s2 = in.next();
        System.out.println("连接后:n" + s1 + s2);
    }
}

import java.util.*;
public class Demo46 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("请输入一个字符串:");
        String str1 = in.nextLine();
        System.out.print("请再输入三个字符串:");
        String str2 = in.nextLine();
        String str = str1+str2;
        System.out.println("连接后的字符串是:"+str);
    }
}

【程序47】   标题:读取7个数(1—50)的大背头值,每读取贰个值,程序打字与印刷出该值个数的。
import java.util.*;
public class Demo47 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int n=1,num;
        while(n<=7){
            do{
                System.out.print("请输入一个1--50 之间的整数:");
                num= s.nextInt();
            }while(num<1||num>50);
            for(int i=1;i<=num;i++)
            {System.out.print("*");
            }
            System.out.println();
            n ++;
        }
    }
}

import java.util.Scanner;
public class Demo47 {
    public static void print(int n) {
        for (int i = 0; i < n; i++) {
            System.out.print("*");
        }
        System.out.println();
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        for (int i = 0; i < 7; i++) {
            int temp = in.nextInt();
            print(temp);
        }
    }
}

【程序48】   标题:有个别企业接纳电话传递数据,数据是多少人的板寸,在传递进程中是加密的,加密法则如下:每位数字都抬高5,然后用和除以10的余数代替该数字,再将首先位和第多人交流,第二人和第二位沟通。
import java.util.Scanner;
public class Demo48{
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入贰个4位数字:");
        String str = in.next();
        if (!((str).matches("\d{4}"))) {
            System.out.println("输入的不是4位数字!");
            System.exit(0);
        }
        char[] c = str.toCharArray();
        int[] a = new int[4];
        for (int i = 0; i < a.length; i++) {
            a[i] = ((int) (c[i] - '0') + 5) % 10;
        }
        int t;
        t = a[0];
        a[0] = a[3];
        a[3] = t;
        t = a[1];
        a[1] = a[2];
        a[2] = t;
        System.out.println("结果是:" + a[0] + a[1] + a[2] + a[3]);
    }
}

import java.util.*;
public class Demo48 {
    public static void main(String args[]) {
        Scanner s = new Scanner(System.in);
        int num=0,temp;
        do{
            System.out.print("请输入贰个4位正整数:");
            num = s.nextInt();
        }while (num<1000||num>9999);
        int a[]=new int[4];
        a[0] = num/一千; //取千位的数字
        a[1] = (num/100)%10; //取百位的数字
        a[2] = (num/10)%10; //取12个人的数字
        a[3] = num%10; //取个位的数字
        for(int j=0;j<4;j++) {
            a[j]+=5; a[j]%=10;
        }
        for(int j=0;j<=1;j++) {
            temp = a[j]; a[j] = a[3-j]; a[3-j] =temp;
        }
        System.out.print("加密后的数字为:");
        for(int j=0;j<4;j++) System.out.print(a[j]);
    }
}

【程序49】   标题:计算字符串中子串现身的次数。
import java.util.Scanner;
public class Demo49 {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.println("请输入主串:");
        String str1 = in.nextLine();
        System.out.println("请输入子串:");
        String str2 = in.nextLine();
        // 生成子串长度的N个字符串数组
        String[] sa = new String[str1.length() - str2.length() + 1];
        for (int i = 0; i < sa.length; i++) {
            sa[i] = str1.substring(i, i + str2.length());
        }
        int sum = 0;
        // 子串与N个拆开的子串比对
        for (int i = 0; i < sa.length; i++) {
            if (sa[i].equals(str2)) {
                // 成功配对,计数器+1;
                sum++;
                // 因为不总括重叠的子串,所以跳过匹配成对之后的一些拆分子串
                i = i + str2.length();
            }
        }
        System.out.println("主串中国共产党包涵" + sum + "个字串");
    }
}

【程序50】    标题:有三个学生,每一种学生有3门课的大成,从键盘输入以上数据(满含学生号,姓名,三门课成绩),总结出平均成绩,把原有的数量和测算出的平分分数寄存在磁盘文import java.io.File;
import java.io.FileWriter;
import java.util.Scanner;
class Student {
    private int number = 0;
    private String name = "";
    private double[] a = new double[3];
    public double getAve() {
        return (a[0] + a[1] + a[2]) / 3;
    }
    public Student(int number, String name, double[] a) {
        super();
        this.number = number;
        this.name = name;
        this.a = a;
    }
    @Override
    public String toString() {
        return "学号:" + this.number + "t姓名:" + this.name + "rn各科成绩:rn" + a[0] + "t" + a[1] + "t" + a[2] + "rn平均成绩:rn"
                + this.getAve();
    }
}
public class Demo50 {
    public static Student input() {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入学号:");
        int num = s.nextInt();
        System.out.println("请输入姓名:");
        String name = s.next();
        System.out.println("请分别输入3门大成:");
        double[] a = new double[3];
        for (int i = 0; i < 3; i++) {
            a[i] = s.nextDouble();
        }
        return new Student(num, name, a);
    }
    public static void main(String[] args) throws Exception {
        Student[] st = new Student[2];
        for (int i = 0; i < st.length; i++) {
            st[i] = input();
        }
        File f = new File("d:" + File.separator + "123.txt");
        FileWriter output = new FileWriter(f);
        for (int i = 0; i < st.length; i++) {
            output.write(st[i].toString() + "rn");
            output.write("rn");
        }
        output.close();
    }
}

资料来源: 【程序1】 标题:古典难点:有一对兔子,从出生...

材质来源:

那是一道在线编制程序的难点,标题实际情况:

【程序1】   题目:古典难题:有一对兔子,从降生后第一个月起各样月都生一对兔子,小兔子长到第七个月后各种月又生一对兔子,如若兔子都不死,问每种月的兔子总量为多少?
1.顺序解析:兔子的法则为数列1,1,2,3,5,8,13,21....
public class Demo01 {
    public static void main(String args[]) {
        for (int i = 1; i <= 20; i++)
            System.out.println(f(i));
    }
    public static int f(int x) {
        if (x == 1||x == 2)
            return 1;
        else
            return f(x - 1) + f(x - 2);
    }
}

if(a>b){

【程序1】   标题:古典难点:有一对兔子,从出生后第2个月起各类月都生一对兔子,小兔子长到第八个月后各样月又生一对兔子,假若兔子都不死,问各个月的兔子总的数量为多少?
1.主次剖析:兔子的规律为数列1,1,2,3,5,8,13,21....
public class Demo01 {
    public static void main(String args[]) {
        for (int i = 1; i <= 20; i++)
            System.out.println(f(i));
    }
    public static int f(int x) {
        if (x == 1||x == 2)
            return 1;
        else
            return f(x - 1) + f(x - 2);
    }
}

  回文字符串是指从左到右和从右到左相同的字符串,现给定三个仅由小写字母组成的字符串,你可以把它的字母重新排列,以形成不一样的回文字符串。

【程序2】   题目:判别101-200里头有稍许个素数,并出口全体素数。
1.程序剖判:决断素数的秘籍:用三个数分别去除2到sqrt(那个数),若是能被整除,则表明此数不是素数,反之是素数。
public class Demo02{
    public static void main(String[] args){
        for(int i=2;i<=200;i++){
            boolean flag=true;
            for(int j=2;j<i;j++){
                if(i%j==0){
                    flag=false;
                    break;
                }
            }
            if(flag==true){
                System.out.print(" "+i);
            }
        }
    }
}

printf("你真美n");

【程序2】   标题:判别101-200之内有多少个素数,并出口全数素数。
1.主次深入分析:剖断素数的诀窍:用二个数分别去除2到sqrt(那么些数),假若能被整除,则申明此数不是素数,反之是素数。
public class Demo02{
    public static void main(String[] args){
        for(int i=2;i<=200;i++){
            boolean flag=true;
            for(int j=2;j<i;j++){
                if(i%j==0){
                    flag=false;
                    break;
                }
            }
            if(flag==true){
                System.out.print(" "+i);
            }
        }
    }
}

  输入:非空仅由小写字母组成的字符串,长度不超过100

【程序3】   标题:打字与印刷出全体的 雅蒜数 ,所谓 天葱数 是指一个二个人数,其各位数字立方和至极该数本人。举个例子:153是八个 天葱数 ,因为153=1的一遍方+5的三遍方+3的壹遍方。
1.程序剖判:利用for循环控制100-9九十多个数,每个数分解出个位,拾四个人,百位。
public class Demo03 {
    public static void main(String args[]) {
        math mymath = new math();
        for (int i = 100; i <= 999; i++)
            if (mymath.shuixianhua(i) == true)
                System.out.println(i);
    }
}
class math {
    public boolean shuixianhua(int x) {
        int i = 0, j = 0, k = 0;
        i = x/100;
        j = (x%100)/10;
        k = x%10;
        if (x == i*i*i + j*j*j + k*k*k)
            return true;
        else
            return false;
    }
}

}else{

【程序3】   标题:打字与印刷出装有的 天葱数 ,所谓 姚女花数 是指一个叁位数,其各位数字立方和相当该数本人。比方:153是一个 姚女花数 ,因为153=1的一遍方+5的三次方+3的贰次方。
1.前后相继剖判:利用for循环调节100-9100个数,每一种数分解出个位,十二位,百位。
public class Demo03 {
    public static void main(String args[]) {
        math mymath = new math();
        for (int i = 100; i <= 999; i++)
            if (mymath.shuixianhua(i) == true)
                System.out.println(i);
    }
}
class math {
    public boolean shuixianhua(int x) {
        int i = 0, j = 0, k = 0;
        i = x/100;
        j = (x%100)/10;
        k = x%10;
        if (x == i*i*i + j*j*j + k*k*k)
            return true;
        else
            return false;
    }
}

  输出:能组成的具备回文串的个数(因为结果大概特别大,出口对1000000007取余数的结果)。

【程序4】   标题:将三个正整数分解质因数。比如:输入90,打字与印刷出90=2*3*3*5。
1.前后相继深入分析:对n进行分解质因数,应先找到叁个细小的质数i,然后按下述步骤落成:
(1)假如那几个质数恰等于n,则注脚分解质因数的长河已经达成,打字与印刷出就可以。
(2)假如n > i,但n能被i整除,则应打字与印刷出i的值,并用n除以i的商,作为新的正整数你,重复实施第一步。
(3)假设n不可能被i整除,则用i+1作为i的值,重复实践第一步。
import java.util.Scanner;
public class Demo04 {
    public Demo04() {
        super();
    }
    public void fenjie(int n) {
        for (int i = 2; i <= n; i++) {
            if (n % i == 0) {
                System.out.print(i);
                if(n!=i){
                    System.out.print("*");
                }
                fenjie(n/i);
            }
        }
        System.exit(0); //退出程序
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入N的值:");
        int N = in.nextInt();
        System.out.print( "分解质因数:" + N +"=");
        new Demo04().fenjie(N);
    }
}

printf("你真帅n");

【程序4】   标题:将四个正整数分解质因数。举个例子:输入90,打字与印刷出90=2*3*3*5。
1.顺序深入分析:对n进行分解质因数,应先找到四个相当小的质数i,然后按下述步骤落成:
(1)要是这几个质数恰等于n,则注明分解质因数的经过已经结束,打字与印刷出就能够。
(2)假设n > i,但n能被i整除,则应打字与印刷出i的值,并用n除以i的商,作为新的正整数你,重复实践第一步。
(3)若是n不能够被i整除,则用i+1作为i的值,重复推行第一步。
import java.util.Scanner;
public class Demo04 {
    public Demo04() {
        super();
    }
    public void fenjie(int n) {
        for (int i = 2; i <= n; i++) {
            if (n % i == 0) {
                System.out.print(i);
                if(n!=i){
                    System.out.print("*");
                }
                fenjie(n/i);
            }
        }
        System.exit(0); //退出程序
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入N的值:");
        int N = in.nextInt();
        System.out.print( "分解质因数:" + N +"=");
        new Demo04().fenjie(N);
    }
}

  例如:输入"aabb" 输出为2(因为“aabb”对应的全部回文字符串有2个:abba和baab)

【程序5】   标题:利用规范运算符的嵌套来变成此题:学习成绩=90分的同学用A代表,60-89分之间的用B表示,60分以下的用C表示。
1.顺序深入分析:(a>b)?a:b那是标准化运算符的中央例子。
import java.util.Scanner;
public class Demo05 {
    public static void main(String[] args) {
        System.out.println("请输入N的值:");
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        System.out.println(N >= 90 ?"A": (N >= 60 ? "B":"C"));
    }
}

}

【程序5】   标题:利用规范运算符的嵌套来成功此题:学习战绩=90分的同桌用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.顺序分析:(a>b)?a:b那是标准运算符的主干例子。
import java.util.Scanner;
public class Demo05 {
    public static void main(String[] args) {
        System.out.println("请输入N的值:");
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        System.out.println(N >= 90 ?"A": (N >= 60 ? "B":"C"));
    }
}

  函数尾部 c: int palindrome(const char *s); c++ int palindrome(const string &s); java public static int palindrome ;

【程序6】   题目:输入八个正整数m和n,求其最大合同数和最小公倍数。
1.前后相继深入分析:利用辗除法。
import java.util.Scanner;
public class Demo06 {
    public static void main(String[] args){
        int a,b,m,n;
        Scanner in=new Scanner(System.in);
        System.out.println("请输入贰个正整数:");
        a=in.nextInt();
        System.out.println("再输入二个正整数:");
        b=in.nextInt();
        commonDivisor use=new commonDivisor();
        m=use.commonDivisor(a,b);
        n=a*b/m;
        System.out.println("最大左券数:"+m);
        System.out.println("最小公倍数:"+n);
    }
}
class commonDivisor{
    public int commonDivisor(int x,int y){
        if(x<y){
            int t=x;
            x=y;
            y=t;
        }
        while(y!=0){
            if(x==y)return x;
            else{
                int k=x%y;
                x=y;
                y=k;
            }
        }
        return x;
    }
}

========================================================

【程序6】   题目:输入五个正整数m和n,求其最大协议数和最小公倍数。
1.程序深入分析:利用辗除法。
import java.util.Scanner;
public class Demo06 {
    public static void main(String[] args){
        int a,b,m,n;
        Scanner in=new Scanner(System.in);
        System.out.println("请输入三个正整数:");
        a=in.nextInt();
        System.out.println("再输入二个正整数:");
        b=in.nextInt();
        commonDivisor use=new commonDivisor();
        m=use.commonDivisor(a,b);
        n=a*b/m;
        System.out.println("最大左券数:"+m);
        System.out.println("最小公倍数:"+n);
    }
}
class commonDivisor{
    public int commonDivisor(int x,int y){
        if(x<y){
            int t=x;
            x=y;
            y=t;
        }
        while(y!=0){
            if(x==y)return x;
            else{
                int k=x%y;
                x=y;
                y=k;
            }
        }
        return x;
    }
}

自身的解题思路

【程序7】   题目:输入一行字符,分别总计出里面罗马尼亚语字母、空格、数字和任何字符的个数。
1.顺序剖析:利用for循环语句,if条件语句。
import java.util.Scanner;

循环

【程序7】   标题:输入一行字符,分别总计出在那之中保加利亚语字母、空格、数字和别的字符的个数。
1.主次分析:利用for循环语句,if条件语句。
import java.util.Scanner;

  遵照回文字符串的表征,能够通晓,二个字符串假使是回文字符串,那么字符串要求知足的尺度:字符串中每一个字母的个数必得是偶数,恐怕全体字符串只有三个字母的个数是奇数!比方串"aabbccccdd"即每种字母个数均为偶数,又如“aaabbcc”,唯有三个字母a的个数是奇数,获得解题方法:

public class Demo07 {
    public static void main(String[] args){
        System.out.println("请输入七个字符串;");
        Scanner in=new Scanner(System.in);
        String str=in.nextLine();
        char[] ch=str.toCharArray();
        count use=new count();
        use.count(ch);
    }
}
class count{
    int digital,character,blank,other;
    public void count(char[] arr){
        for(int i=0;i<arr.length;i++){
            if(arr[i]>='0'&&arr[i]<='9'){
                digital++;
            }else if((arr[i]>='a'&&arr[i]<='z')||(arr[i]>='A'&&arr[i]<='Z')){
                character++;
            }else if(arr[i]==' '){
                blank++;
            }else{
                other++;
            }
        }
        System.out.println("数字个数:"+digital);
        System.out.println("斯洛伐克(Slovak)语字母个数:"+character);
        System.out.println("空格个数:"+blank);
        System.out.println("其余字符个数:"+other);
    }
}

for(int i= 0;i< 100;i++)i++{

public class Demo07 {
    public static void main(String[] args){
        System.out.println("请输入一个字符串;");
        Scanner in=new Scanner(System.in);
        String str=in.nextLine();
        char[] ch=str.toCharArray();
        count use=new count();
        use.count(ch);
    }
}
class count{
    int digital,character,blank,other;
    public void count(char[] arr){
        for(int i=0;i<arr.length;i++){
            if(arr[i]>='0'&&arr[i]<='9'){
                digital++;
            }else if((arr[i]>='a'&&arr[i]<='z')||(arr[i]>='A'&&arr[i]<='Z')){
                character++;
            }else if(arr[i]==' '){
                blank++;
            }else{
                other++;
            }
        }
        System.out.println("数字个数:"+digital);
        System.out.println("瑞典语字母个数:"+character);
        System.out.println("空格个数:"+blank);
        System.out.println("其他字符个数:"+other);
    }
}

  • 测算字符串的长短Lenth,总结每种字母的长度,存入数组arr[26]中,下标与字母的ASCII码相对应
  • 回文字符串的个数result = (Lenth / 2)! / ∏(arr[ n ]/2)! ,n = 0,1,2,3 ……,25,即26个字母

【程序8】   标题:求s = a + aa + aaa + aaaa + aa...a的值,在那之中a是三个数字。比如2 + 22 + 222 + 2222 + 22222(此时共有5个数相加),多少个数相加有键盘调整。
1.主次深入分析:关键是计算出各个的值。
import java.util.Scanner;
public class Demo08 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println(请输入a的值);
        int a = in.nextInt();
        System.out.println(请输入n个数);
        int n = in.nextInt();
        int s = 0,t=0;
        for (int i = 1; i <= n; i++) {
            t += a;
            a = a*10;
            s += t;
        }
        System.out.println(s);
    }
}

int temp = i + 1;

【程序8】   题目:求s = a + aa + aaa + aaaa + aa...a的值,在那之中a是叁个数字。举例2 + 22 + 222 + 2222 + 22222(此时共有5个数相加),几个数相加有键盘调控。
1.主次分析:关键是总括出每一样的值。
import java.util.Scanner;
public class Demo08 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println(请输入a的值);
        int a = in.nextInt();
        System.out.println(请输入n个数);
        int n = in.nextInt();
        int s = 0,t=0;
        for (int i = 1; i <= n; i++) {
            t += a;
            a = a*10;
            s += t;
        }
        System.out.println(s);
    }
}

  举个例证会尤其清晰,举个例子字符串“aaabbccccdd”, a :3个, b:2个 , c:4个, d:2个 ,字符串长度为11,那么按公式来算就是

【程序9】   标题:三个数假若恰巧等于它的因子之和,这么些数就称为"完数"。比方6=1+2+3。编制程序寻觅1000以内的保有完数。
public class Demo09 {
    public static void main(String[] args) {
        int s;
        for (int i = 1; i <= 1000; i++) {
            s = 0;
            for (int j = 1; j < i; j++)
                if (i % j == 0)
                    s = s + j;
            if (s == i)
                System.out.print(i + " " );
        }
        System.out.println();
    }
}

public class Demo09{
    public static void main(String[] args) {
        int i,j,sum;          
        for(i=1;i<1000;i++)  
        {
            sum = 0;          
            for(j=1;j<=i/2;j++)   
            {
                if(i%j==0)         
                {
                    sum+=j;        
                }
            }
            if(sum==i)            
            {
                System.out.print(i+" its factors are:   ");       
                for(j=1;j<=i/2;j++)                          
                {
                    if(i%j==0)                                  
                        System.out.print(j+", ");
                }
                System.out.println();
            }
        }
    }
}

printf("%d",temp);

【程序9】   标题:三个数如若恰巧等于它的因子之和,那几个数就称为"完数"。比如6=1+2+3。编制程序找寻1000以内的保有完数。
public class Demo09 {
    public static void main(String[] args) {
        int s;
        for (int i = 1; i <= 1000; i++) {
            s = 0;
            for (int j = 1; j < i; j++)
                if (i % j == 0)
                    s = s + j;
            if (s == i)
                System.out.print(i + " " );
        }
        System.out.println();
    }
}

public class Demo09{
    public static void main(String[] args) {
        int i,j,sum;          
        for(i=1;i<1000;i++)  
        {
            sum = 0;          
            for(j=1;j<=i/2;j++)   
            {
                if(i%j==0)         
                {
                    sum+=j;        
                }
            }
            if(sum==i)            
            {
                System.out.print(i+" its factors are:   ");       
                for(j=1;j<=i/2;j++)                          
                {
                    if(i%j==0)                                  
                        System.out.print(j+", ");
                }
                System.out.println();
            }
        }
    }
}

  result = ! / ! *! *! *= 5! / (1! * 1! * 2! * 1!) = 120 / 2 = 60,那么些点子是行使数学里面包车型客车排列组合的学识,应该是高级中学学的!

【程序10】 标题:一个球从100米中度自由落下,每一遍落地后反跳回原高度的二分之一;再落下,求它在第十三回落地时,共通过多少米?第13次反弹多高?
public class Demo10 {
    public static void main(String[] args) {
        double s = 0;
        double h = 100;
        for (int i = 1; i <= 10; i++) {
            s += h;
            h = h/2;
            s += h;
        }
        System.out.println("经过路程:"+s);
        System.out.println("反弹高度:"+h);
    }
}

}

【程序10】 标题:一个球从100米高度自由落下,每趟落地后反跳回原中度的一半;再落下,求它在第13遍降地时,共通过多少米?第12次反弹多高?
public class Demo10 {
    public static void main(String[] args) {
        double s = 0;
        double h = 100;
        for (int i = 1; i <= 10; i++) {
            s += h;
            h = h/2;
            s += h;
        }
        System.out.println("经过路程:"+s);
        System.out.println("反弹中度:"+h);
    }
}

  有学过排列组合的人相应轻巧想到这种解题方法,可是公式中使用了大气的阶乘,要掌握阶乘比指数拉长越来越快更恐怖,int,long等档案的次序的变量是无力回天积存那么大的数字的,举例20的阶乘是243 2902 0081 7664 0000,程序或者会用到50的阶乘,各类门类的限量如下:

【程序11】   标题:有1、2、3、4个数字,能构成多少个互不同且无重复数字的几人数?都以有些?
1.顺序深入分析:可填在百位、11位、个位的数字都以1、2、3、4。组成全体的排列后再去掉不满意条件的排列。   
public class Demo11 {
    public static void main(String[] args) {
        int count = 0;
        for (int i = 1; i <= 4; i++)
          for (int j = 1; j <= 4; j++)
            for (int k = 1; k <= 4; k++)
              if (i != j && j != k && i != k) {
            count += 1;
            System.out.println(i*100 + j*10 + k);
              }
        System.out.println("共" + count + "个几个人数");
    }
}

例:  1--100之间7的倍数

【程序11】   标题:有1、2、3、4个数字,能组成多少个互差异且无重复数字的几位数?都以有一些?
1.顺序剖析:可填在百位、拾人、个位的数字都是1、2、3、4。组成全体的排列后再去掉不满意条件的排列。   
public class Demo11 {
    public static void main(String[] args) {
        int count = 0;
        for (int i = 1; i <= 4; i++)
          for (int j = 1; j <= 4; j++)
            for (int k = 1; k <= 4; k++)
              if (i != j && j != k && i != k) {
            count += 1;
            System.out.println(i*100 + j*10 + k);
              }
        System.out.println("共" + count + "个四人数");
    }
}

unsigned int:0~4294967295
int:2147483648~2147483647
unsigned long :0~4294967295
long : 2147483648~2147483647
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:18446744073709551615

【程序12】  题目:公司发放的奖金依据受益提成。收益(I)低于或等于10万元时,奖金可提一成;收益超越10万元,低于20万元时,低于10万元的一部分按一成提成,高于10万元的一部分,可提成7.5%;20万到40万以内时,高于20万元的一些,可提成5%;40万到60万之内时当先40万元的部分,可提成3%;60万到100万中间时,高于60万元的有些,可提成1.5%,高于100万元时,当先100万元的局地按1%提成,从键盘输入前些时间毛利益lirun,求应发放奖金总额sum?
1.顺序深入分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
import java.util.Scanner;
public class Demo12 {
    public static void main(String[] args) {
        double sum;
        System.out.println("输入上一个月净利益:(万元)");
        Scanner in = new Scanner(System.in);
        double lirun = in.nextDouble();
        if (lirun <= 10) {
            sum = lirun * 0.1;
        } else if (lirun <= 20) {
            sum = 10*0.1 + (lirun - 10) * 0.075;
        } else if (lirun <= 40) {
            sum = 10*0.1 + 10*0.075 + (lirun - 20) * 0.05;
        } else if (lirun <= 60) {
            sum = 10*0.1 + 10*0.075 + 10*0.05 + (lirun - 40) * 0.03;
        } else if (lirun <= 100) {
            sum = 10*0.1 + 10*0.075 + 10*0.05 + 10*0.03 + (lirun - 60) * 0.015;
        } else {
            sum = 10*0.1 + 10*0.075 + 10*0.05 + 10*0.03 + 10*0.015

for(int i = 0;i <100;i++){

【程序12】  标题:公司发放的奖金根据利益提成。收益(I)低于或等于10万元时,奖金可提百分之十;利益超过10万元,低于20万元时,低于10万元的有些按百分之十提成,高于10万元的有的,可提成7.5%;20万到40万里边时,高于20万元的片段,可提成5%;40万到60万里头时超过40万元的一部分,可提成3%;60万到100万以内时,高于60万元的一对,可提成1.5%,高于100万元时,当先100万元的部分按1%提成,从键盘输入本月净受益lirun,求应发放奖金总额sum?
1.主次剖判:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
import java.util.Scanner;
public class Demo12 {
    public static void main(String[] args) {
        double sum;
        System.out.println("输入本月净受益:(万元)");
        Scanner in = new Scanner(System.in);
        double lirun = in.nextDouble();
        if (lirun <= 10) {
            sum = lirun * 0.1;
        } else if (lirun <= 20) {
            sum = 10*0.1 + (lirun - 10) * 0.075;
        } else if (lirun <= 40) {
            sum = 10*0.1 + 10*0.075 + (lirun - 20) * 0.05;
        } else if (lirun <= 60) {
            sum = 10*0.1 + 10*0.075 + 10*0.05 + (lirun - 40) * 0.03;
        } else if (lirun <= 100) {
            sum = 10*0.1 + 10*0.075 + 10*0.05 + 10*0.03 + (lirun - 60) * 0.015;
        } else {
            sum = 10*0.1 + 10*0.075 + 10*0.05 + 10*0.03 + 10*0.015

__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615

  • (lirun - 100) * 0.01;
            }
            System.out.println("应发的奖金是:"+sum+"(万元)");
        }
    }

     if(i  % 7 ==0){

  • (lirun - 100) * 0.01;
            }
            System.out.println("应发的奖金是:"+sum+"(万元)");
        }
    }

  正因为数量如此宏大,标题才会提议对1000000007取模的供给,小编尝试了无数办法,试图幸免溢出的情状,最终得到一个比较符合的不二秘技,既然数值有望溢出,那么我们可以运用化整为零的方法,不直接总括分子中的!,将其感觉两步走,

【程序13】   标题:一个大背头,它助长100后是二个完全平方数,加上168又是三个全然平方数,请问该数是稍稍?
1.前后相继分析:在10万之内推断,先将该数加上100后再开药方,再将该数加上168后再开药方,借使开药方后的结果满足如下条件,便是结果。请看具体分析:
public class Demo13 {
    public static void main(String[] args) {
        for(int x=1;x<100000;x++){
          if(Math.sqrt(x+100)%1==0)
          if(Math.sqrt(x+100+168)%1==0)
            System.out.println(x+"加上100后是多少个全然平方数,加上168又是五个截然平方数");
        }
    }
}

    printf("%d",i);

【程序13】   标题:叁个整数,它丰盛100后是三个截然平方数,加上168又是贰个截然平方数,请问该数是多少?
1.先后分析:在10万以内剖断,先将该数加上100后再开药方,再将该数加上168后再开药方,要是开药方后的结果满意如下条件,便是结果。请看具体解析:
public class Demo13 {
    public static void main(String[] args) {
        for(int x=1;x<100000;x++){
          if(Math.sqrt(x+100)%1==0)
          if(Math.sqrt(x+100+168)%1==0)
            System.out.println(x+"加上100后是叁个完全平方数,加上168又是三个全然平方数");
        }
    }
}

  第一步,在做!的还要( sum存款和储蓄结果,sum = sum * k,k = 1,2,3 ……Lenth/2),对(arr[ n ]/2)!做除法,根据数学的常识,存在k使得sum能被(arr[ n ]/2)! 整除,直到(arr[ n ]/2)!整除结束,即n = 25说尽,记下此时的sumk

【程序14】 标题:输入某年某月某日,剖断这一天是那个时候的第几天?
1.程序分析:以十月5日为例,应该先把前5个月的加起来,然后再增进5天即前段年代的第几天,特殊意况,闰年且输入月份大于3时需思念多加一天。
import java.util.Calendar;
import java.util.Scanner;
public class Demo14 {
    public static void main(String[] args) {
        System.out.println("请输入年,月,日:");
        Scanner in = new Scanner(System.in);
        int year = in.nextInt();
        int month = in.nextInt();
        int day = in.nextInt();
        Calendar cal = Calendar.getInstance();
        cal.set(year, month - 1, day);
        int sum = cal.get(Calendar.DAY_OF_YEAR);
        System.out.println("这一天是那年的第" + sum +"天");
    }
}

import java.util.*;
public class Demo14 {
    public static void main(String[] args){
        int year,month,day,sum=0;
        Scanner in=new Scanner(System.in);
        System.out.println("输入年:");
        year=in.nextInt();
        System.out.println("输入月:");
        month=in.nextInt();
        System.out.println("输入日:");
        day=in.nextInt();
        
        switch(month){
        case 1:
            sum=0;
            break;
        case 2:
            sum=31;
            break;
        case 3:
            sum=59;
            break;
        case 4:
            sum=90;
            break;
        case 5:
            sum=120;
            break;
        case 6:
            sum=151;
            break;
        case 7:
            sum=181;
            break;
        case 8:
            sum=212;
            break;
        case 9:
            sum=243;
            break;
        case 10:
            sum=273;
            break;
        case 11:
            sum=304;
            break;
        case 12:
            sum=334;
            break;
            default:
                System.out.println("wrong input!");
                return;
        }
        
        sum=sum+day;
        boolean leap;
        if(year%400==0||(year%4==0&&year%100!=0)){
            leap=true;
        }else {
            leap=false;
        }
        if(leap&&month>2){
            sum++;
        }
        
        System.out.println("It is the "+sum+"th day.");
    }
}

import java.util.Scanner;
public class Demo14 {
    public static void main(String[] args){
        System.out.println("请输入年 月 日:");
        Scanner in=new Scanner(System.in);
        int year=in.nextInt();
        int month=in.nextInt();
        int day=in.nextInt();
        System.out.println("是该年的第"+count(year,month,day)+"天");
    }
    public static int count(int year,int month,int day){
        int sum=0;
        int days=0;
        for(int i=1;i<month;i++){
            switch(i){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                days=31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                days=30;
                break;
            case 2:
                if(year%400==0||year%4==0&&year%100!=0){
                    days=29;
                }else{
                    days=28;
                }
                break;
            }
            sum+=days;
        }
        sum+=day;
        return sum;
    }
}

}

【程序14】 标题:输入某年某月某日,剖断这一天是今年的第几天?
1.主次深入分析:以3月5日为例,应该先把前四个月的加起来,然后再拉长5天即前一个月的第几天,特殊意况,闰年且输入月份大于3时需考虑多加一天。
import java.util.Calendar;
import java.util.Scanner;
public class Demo14 {
    public static void main(String[] args) {
        System.out.println("请输入年,月,日:");
        Scanner in = new Scanner(System.in);
        int year = in.nextInt();
        int month = in.nextInt();
        int day = in.nextInt();
        Calendar cal = Calendar.getInstance();
        cal.set(year, month - 1, day);
        int sum = cal.get(Calendar.DAY_OF_YEAR);
        System.out.println("这一天是今年的第" + sum +"天");
    }
}

import java.util.*;
public class Demo14 {
    public static void main(String[] args){
        int year,month,day,sum=0;
        Scanner in=new Scanner(System.in);
        System.out.println("输入年:");
        year=in.nextInt();
        System.out.println("输入月:");
        month=in.nextInt();
        System.out.println("输入日:");
        day=in.nextInt();
        
        switch(month){
        case 1:
            sum=0;
            break;
        case 2:
            sum=31;
            break;
        case 3:
            sum=59;
            break;
        case 4:
            sum=90;
            break;
        case 5:
            sum=120;
            break;
        case 6:
            sum=151;
            break;
        case 7:
            sum=181;
            break;
        case 8:
            sum=212;
            break;
        case 9:
            sum=243;
            break;
        case 10:
            sum=273;
            break;
        case 11:
            sum=304;
            break;
        case 12:
            sum=334;
            break;
            default:
                System.out.println("wrong input!");
                return;
        }
        
        sum=sum+day;
        boolean leap;
        if(year%400==0||(year%4==0&&year%100!=0)){
            leap=true;
        }else {
            leap=false;
        }
        if(leap&&month>2){
            sum++;
        }
        
        System.out.println("It is the "+sum+"th day.");
    }
}

import java.util.Scanner;
public class Demo14 {
    public static void main(String[] args){
        System.out.println("请输入年 月 日:");
        Scanner in=new Scanner(System.in);
        int year=in.nextInt();
        int month=in.nextInt();
        int day=in.nextInt();
        System.out.println("是该年的第"+count(year,month,day)+"天");
    }
    public static int count(int year,int month,int day){
        int sum=0;
        int days=0;
        for(int i=1;i<month;i++){
            switch(i){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                days=31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                days=30;
                break;
            case 2:
                if(year%400==0||year%4==0&&year%100!=0){
                    days=29;
                }else{
                    days=28;
                }
                break;
            }
            sum+=days;
        }
        sum+=day;
        return sum;
    }
}

  第二步,继续做!,开头地方为 iter= k+ 1,result = sum(result即回文字符串的个数),循环体为result = (result * iter) % 一千000007; iter = k+1,k+2,……Lenth/2; 循环停止时获得result的值,该值正是回文字符串的个数!

【程序15】 标题:输入五个整数x,y,z,请把这八个数由小到大出口。
1.主次深入分析:大家想艺术把最小的数放到x上,先将x与y举办比较,假诺x>y则将x与y的值实行交流,然后再用x与z进行比较,若是x>z则将x与z的值实行交换,那样能使x最小。
import java.util.Arrays;
import java.util.Scanner;
public class Demo15 {
    public static void main(String[] args) {
        System.out.print("请输入四个数:");
        Scanner in = new Scanner(System.in);
        int[] arr = new int[3];
        for (int i = 0; i < 3; i++) {
            arr[i] = in.nextInt();
        }
        Arrays.sort(arr);
        for (int i=0;i<arr.length;i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

if(x > y) { int t = x; x = y; y = t; } if(x > z) { int t = x; x = z; z = t; } if(y > z) { int t = y; y = z; z = t; }

}

【程序15】 标题:输入多少个整数x,y,z,请把那八个数由小到大出口。
1.顺序分析:大家想方法把最小的数放到x上,先将x与y进行比较,即便x>y则将x与y的值实行交流,然后再用x与z实行相比较,借使x>z则将x与z的值实行沟通,这样能使x最小。
import java.util.Arrays;
import java.util.Scanner;
public class Demo15 {
    public static void main(String[] args) {
        System.out.print("请输入三个数:");
        Scanner in = new Scanner(System.in);
        int[] arr = new int[3];
        for (int i = 0; i < 3; i++) {
            arr[i] = in.nextInt();
        }
        Arrays.sort(arr);
        for (int i=0;i<arr.length;i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

if(x > y) { int t = x; x = y; y = t; } if(x > z) { int t = x; x = z; z = t; } if(y > z) { int t = y; y = z; z = t; }

  :再啰嗦一点,来解释一下循环体的原委result = (result * iter) % 1000000007,一旦在循环体中不对1000000007取余,很恐怕会产出溢出的气象,其数学原理为:对于整数a ,M ,r有 a % M = r, 那么 存在k,使得 a = kM + r,两侧相同的时候乘以n,获得na = knM + nr, 所以有 % M = % M

【程序16】 题目:输出9*9口诀乘法表。
1.程序解析:分行与列思量,共9行9列,i调控行,j调控列。
并发重复的乘积(全矩形)
public class Demo16 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= 9; j++)
                System.out.print(i + "*" + j + "=" + (i*j) + "t");
            System.out.println();
        }
    }
}
不现重复的乘积(下三角)
public class Demo16 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++)
                System.out.print(i + "*" + j + "=" + (i*j) + "t");
            System.out.println();
        }
    }
}

======================================================

【程序16】 题目:输出9*9口诀乘法表。
1.前后相继分析:分行与列思索,共9行9列,i调控行,j调控列。
并发重复的乘积(全矩形)
public class Demo16 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= 9; j++)
                System.out.print(i + "*" + j + "=" + (i*j) + "t");
            System.out.println();
        }
    }
}
不现重复的乘积(下三角)
public class Demo16 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++)
                System.out.print(i + "*" + j + "=" + (i*j) + "t");
            System.out.println();
        }
    }
}

  以上就是自己对这些主题材料的知道,上面将贴出作者的前后相继的主要性算法:

【程序17】   题目:猴子吃桃难点:猴子第一天摘下多少个光桃,当即吃了四分之二,还不瘾,又多吃了贰个次之天早晨又将剩余的黄桃吃掉八分之四,又多吃了一个。今后天天中午都吃了前一天剩
下的贰分之一零多个。到第10天上午想再吃时,见只剩下一个白桃了。求第一天共摘了有一点。
1.主次解析:采纳逆向思维的办法,从后往前估算。
public class Demo17 {
    public static void main(String[] args) {
        int sum = 1;
        for (int i = 0; i < 9; i++) {
            sum = (sum + 1) * 2;
        }
        System.out.println("第一天共摘"+sum);
    }
}

多层循环的嵌套

【程序17】   标题:猴子吃桃难点:猴子第一天摘下多少个寿星桃,当即吃了概况上,还不瘾,又多吃了多少个次之天早上又将剩余的黄肉桃吃掉四分之二,又多吃了贰个。今后天天早晨都吃了前一天剩
下的八分之四零叁个。到第10天上午想再吃时,见只剩下二个水蜜桃了。求第一天共摘了有一点点。
1.前后相继深入分析:选择逆向思维的点子,从后往前推断。
public class Demo17 {
    public static void main(String[] args) {
        int sum = 1;
        for (int i = 0; i < 9; i++) {
            sum = (sum + 1) * 2;
        }
        System.out.println("第一天共摘"+sum);
    }
}

图片 1图片 2

【程序18】   题目:多少个乒球队举行比赛,各出几人。甲队为a,b,c两个人,乙队为x,y,z几人。已抽签决定竞技名单。有人向队员领会竞技的名单。a说她不和x比,c说她不和x,z比,请编制程序
序搜索三队赛手的花名册。
public class Demo18 {
    static char[] m = { 'a', 'b', 'c' };
    static char[] n = { 'x', 'y', 'z' };
    public static void main(String[] args) {
        for (int i = 0; i < m.length; i++) {
            for (int j = 0; j < n.length; j++) {
                if (m[i] == 'a' && n[j] == 'x') {
                    continue;
                } else if (m[i] == 'a' && n[j] == 'y') {
                    continue;
                } else if ((m[i] == 'c' && n[j] == 'x')
                        || (m[i] == 'c' && n[j] == 'z')) {
                    continue;
                } else if ((m[i] == 'b' && n[j] == 'z')
                        || (m[i] == 'b' && n[j] == 'y')) {
                    continue;
                } else
                    System.out.println(m[i] + " vs " + n[j]);
            }
        }
    }
}

public class Demo18 {
    public String a, b, c;
    public Demo18(String a, String b, String c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }
    public static void main(String[] args) {
        Demo18 arr_a = new Demo18("a", "b", "c");
        String[] b = { "x", "y", "z" };
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                for (int k = 0; k < 3; k++) {
                 Demo18 arr_b = new Demo18(b[i], b[j], b[k]);
                    if (!arr_b.a.equals(arr_b.b) & !arr_b.b.equals(arr_b.c)
                            & !arr_b.c.equals(arr_b.a) & !arr_b.a.equals("x")
                            & !arr_b.c.equals("x") & !arr_b.c.equals("z")) {
                        System.out.println(arr_a.a + "--" + arr_b.a);
                        System.out.println(arr_a.b + "--" + arr_b.b);
                        System.out.println(arr_a.c + "--" + arr_b.c);
                    }
                }
            }
        }
    }
}

for(int i = 1; i < 4; I++){

【程序18】   标题:四个乒球队实行较量,各出多少人。甲队为a,b,c三人,乙队为x,y,z四个人。已抽签决定比赛名单。有人向队员领会竞赛的花名册。a说他不和x比,c说她不和x,z比,请编程
序寻觅三队赛手的名单。
public class Demo18 {
    static char[] m = { 'a', 'b', 'c' };
    static char[] n = { 'x', 'y', 'z' };
    public static void main(String[] args) {
        for (int i = 0; i < m.length; i++) {
            for (int j = 0; j < n.length; j++) {
                if (m[i] == 'a' && n[j] == 'x') {
                    continue;
                } else if (m[i] == 'a' && n[j] == 'y') {
                    continue;
                } else if ((m[i] == 'c' && n[j] == 'x')
                        || (m[i] == 'c' && n[j] == 'z')) {
                    continue;
                } else if ((m[i] == 'b' && n[j] == 'z')
                        || (m[i] == 'b' && n[j] == 'y')) {
                    continue;
                } else
                    System.out.println(m[i] + " vs " + n[j]);
            }
        }
    }
}

public class Demo18 {
    public String a, b, c;
    public Demo18(String a, String b, String c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }
    public static void main(String[] args) {
        Demo18 arr_a = new Demo18("a", "b", "c");
        String[] b = { "x", "y", "z" };
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                for (int k = 0; k < 3; k++) {
                 Demo18 arr_b = new Demo18(b[i], b[j], b[k]);
                    if (!arr_b.a.equals(arr_b.b) & !arr_b.b.equals(arr_b.c)
                            & !arr_b.c.equals(arr_b.a) & !arr_b.a.equals("x")
                            & !arr_b.c.equals("x") & !arr_b.c.equals("z")) {
                        System.out.println(arr_a.a + "--" + arr_b.a);
                        System.out.println(arr_a.b + "--" + arr_b.b);
                        System.out.println(arr_a.c + "--" + arr_b.c);
                    }
                }
            }
        }
    }
}

 1 for(iter = 1; iter <= len/2; iter++) 2     { 3         MUL = MUL * iter; 4         while((arr[iterM] ==0 || arr[iterM] == 1) && iterM <26 ) 5         { 6             iterM++; 7         } 8         if(iterM < 26 && MUL % arr[iterM] == 0) 9         {10             MUL = MUL / arr[iterM];11             iterM++;12         }13         if(iterM >= 26)14         {15             death = iter ;16             result = MUL;17             break;18         }19     }20     for(iter = death + 1; iter <= len/2 ; iter++)21     {22         result = (result * iter) % 1000000007;23     }

【程序19】  标题:打印出如下图案(菱形)

for (int j = 1;j < 4;j++){

【程序19】  题目:打字与印刷出如下图案(菱形)

View Code

1.主次剖析:先把图片分成两片段来对待,前四行三个原理,后三行二个规律,利用再一次for循环,第一层调控行,第二层调整列。

printf("n";)

1.主次深入分析:先把图片分成两有的来对待,前四行二个准绳,后三行二个原理,利用再度for循环,第一层调控行,第二层调整列。

  MUL初值为1,数组arr[26]中存放的数值不是每个字母的个数,而是的阶乘,对,想必你也虚拟到了,这里可能会并发溢出的事态,如若极端一点,字符串中存在二个假名的个数当先了50,算一下25的阶乘,那么这些算法就能溢出了,可是这种景观周边也能够破例管理,我有时还没悟出相比好的点子,希望在那获得大神的指教!

三角形:
*
***
******
********
******
***
*
public class Demo19 {
    public static void main(String[] args) {
        int i=0;
        int j=0;
        for ( i = 1; i <= 4; i++) {
            for ( j = 1; j <= 2 * i - 1; j++)
                System.out.print("*");
            System.out.println();
        }
        for ( i = 3; i >= 1; i--) {
            for ( j = 1; j <= 2 * i - 1; j++)
                System.out.print("*");
            System.out.println();
        }
    }
}

}

三角形:
*
***
******
********
******
***
*
public class Demo19 {
    public static void main(String[] args) {
        int i=0;
        int j=0;
        for ( i = 1; i <= 4; i++) {
            for ( j = 1; j <= 2 * i - 1; j++)
                System.out.print("*");
            System.out.println();
        }
        for ( i = 3; i >= 1; i--) {
            for ( j = 1; j <= 2 * i - 1; j++)
                System.out.print("*");
            System.out.println();
        }
    }
}

  小编的主次最后左右逢源经过了在线编制程序系统的检查评定,并且取得了相应的拾二个积分!下边罗列一些不利的测量试验用例,供大家使用!作者从不贴出完整代码,必要的能够留下邮箱地址!

菱形:
   *
  ***
 *****
*******
 *****
  ***
   *
public class Demo19 {
    public static void main(String[] args) {
        int i = 0;
        int j = 0;
        for (i = 1; i <= 4; i++) {
            for (int k = 1; k <= 4 - i; k++)
                System.out.print( " " );
            for (j = 1; j <= 2 * i - 1; j++)
                System.out.print("*");
            System.out.println();
        }
        for (i = 3; i >= 1; i--) {
            for (int k = 1; k <= 4 - i; k++)
                System.out.print( " " );
            for (j = 1; j <= 2 * i - 1; j++)
                System.out.print("*");
            System.out.println();
        }
    }
}

}

菱形:
   *
  ***
 *****
*******
 *****
  ***
   *
public class Demo19 {
    public static void main(String[] args) {
        int i = 0;
        int j = 0;
        for (i = 1; i <= 4; i++) {
            for (int k = 1; k <= 4 - i; k++)
                System.out.print( " " );
            for (j = 1; j <= 2 * i - 1; j++)
                System.out.print("*");
            System.out.println();
        }
        for (i = 3; i >= 1; i--) {
            for (int k = 1; k <= 4 - i; k++)
                System.out.print( " " );
            for (j = 1; j <= 2 * i - 1; j++)
                System.out.print("*");
            System.out.println();
        }
    }
}

用例1: s = “xvwsxafqkcawfchxggvsxkq” result =19958400

【程序20】   题目:有一分数体系:2/1,3/2,5/3,8/5,13/8,21/13...求出那几个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。   
public class Demo20 {
    public static void main(String[] args) {
        float fm = 1.0f;
        float fz = 1.0f;
        float temp;
        float sum = 0f;
        for (int i = 0; i < 20; i++) {
            temp = fm;
            fm = fz;
            fz = fz + temp;
            System.out.println((int) fz + "/" + (int) fm);
            sum += fz / fm;
        }
        System.out.println(sum);
    }
}

例: /*         1 2 3

【程序20】   标题:有一分数系列:2/1,3/2,5/3,8/5,13/8,21/13...求出那个数列的前20项之和。
1.顺序深入分析:请抓住分子与分母的变化规律。   
public class Demo20 {
    public static void main(String[] args) {
        float fm = 1.0f;
        float fz = 1.0f;
        float temp;
        float sum = 0f;
        for (int i = 0; i < 20; i++) {
            temp = fm;
            fm = fz;
            fz = fz + temp;
            System.out.println((int) fz + "/" + (int) fm);
            sum += fz / fm;
        }
        System.out.println(sum);
    }
}

用例2: s = “hqaymehhrsfuqrpahrimsxftuxqrpsejouuehaqtsryxjhearxmogmi” result =676517829

【程序21】   题目:求1+2!+3!+...+20!的和。
1.程序分析:此程序只是把累加形成了累乘。
public class Demo21 {
    public static void main(String[] args) {
        long sum = 0;
        long fac = 1;
        for (int i = 1; i <= 20; i++) {
            fac = fac * i;
            sum += fac;
        }
        System.out.println(sum);
    }
}

                  1 2

【程序21】   题目:求1+2!+3!+...+20!的和。
1.程序深入分析:此程序只是把累加产生了累乘。
public class Demo21 {
    public static void main(String[] args) {
        long sum = 0;
        long fac = 1;
        for (int i = 1; i <= 20; i++) {
            fac = fac * i;
            sum += fac;
        }
        System.out.println(sum);
    }
}

用例3: s = “zsmjajrycysuqjvyyraqvoyggmjgsuiyvclurvmygoivmsurgxsyyblvbgxsszlsly” result =493584849

【程序22】   标题:利用递归方法求5!。
1.前后相继深入分析:递归公式:f(n)=f(n-1)*4!
import java.util.Scanner;
public class Demo22 {
    public static long fac(int n) {
        long value = 0;
        if (n == 1 || n == 0) {
            value = 1;
        } else if (n > 1) {
            value = n * fac(n - 1);
        }
        return value;
    }
    public static void main(String[] args) {
        System.out.println("请输入叁个数:");
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        System.out.println(n + "的阶乘为:" + fac(n));
    }
}

                  1        */

【程序22】   标题:利用递归方法求5!。
1.前后相继剖判:递归公式:f(n)=f(n-1)*4!
import java.util.Scanner;
public class Demo22 {
    public static long fac(int n) {
        long value = 0;
        if (n == 1 || n == 0) {
            value = 1;
        } else if (n > 1) {
            value = n * fac(n - 1);
        }
        return value;
    }
    public static void main(String[] args) {
        System.out.println("请输入三个数:");
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        System.out.println(n + "的阶乘为:" + fac(n));
    }
}

用例4: s = “btxgnhdjscrqkqvwzrhtqlekxrgettfvtzcfhtzlhqckkdkntwwrotzzfskddocobfdrkvqozkrxoqqjxcvdcqwo” result =376760527

【程序23】   标题:有5个人坐在一同,问第几个人某些岁?他说比第3个人民代表大会2岁。问第四个人年龄,他说比第四个人大2岁。问第五人,又说比第2人民代表大会两岁。问第2民用,说比第一民用大两
岁。最后问第三个体,他视为10岁。请问第三人多大?
1.主次深入分析:利用递归的秘诀,递归分为回推和递推几个等第。要想精晓第五人年纪,需清楚第三个人的岁数,依次类推,推到第一个人(10岁),再往回推。
直白求解:
public class Demo23 {
    public static void main(String[] args) {
        int n = 10;
        for (int i = 0; i < 4; i++) {
            n = n + 2;
        }
        System.out.println("第五私有" + n + "岁");
    }
}
递归求解:
public class Demo23 {
    public static int getAge(int n) {
        if (n == 1) {
            return 10;
        }
        return 2 + getAge(n - 1);
    }
    public static void main(String[] args) {
        System.out.println("第四个的年纪为" + getAge(5));
    }
}

for(int i = 1; i < 4;i++){  // 外层循环调节趟数

【程序23】   标题:有5个人坐在一同,问第多个人多少岁?他说比第三个人民代表大会2岁。问第二个人年龄,他说比第二个人民代表大会2岁。问第四人,又说比第2人大两岁。问首个体,说比第叁个体大两
岁。最终问第一私有,他正是说10岁。请问第五个人多大?
1.前后相继剖判:利用递归的形式,递归分为回推和递推四个品级。要想清楚第五人年龄,需清楚第三人的年纪,依次类推,推到第一位(10岁),再往回推。
直接求解:
public class Demo23 {
    public static void main(String[] args) {
        int n = 10;
        for (int i = 0; i < 4; i++) {
            n = n + 2;
        }
        System.out.println("第五私有" + n + "岁");
    }
}
递归求解:
public class Demo23 {
    public static int getAge(int n) {
        if (n == 1) {
            return 10;
        }
        return 2 + getAge(n - 1);
    }
    public static void main(String[] args) {
        System.out.println("第多个的年纪为" + getAge(5));
    }
}

【程序24】   标题:给贰个十分少于5位的正整数,需要:一、求它是几人数,二、逆序打字与印刷出各位数字。
焦点原方法:
import java.util.Scanner;
public class Demo24 {
    public static void main(String[] args) {
        Demo24 use = new Demo24();
        System.out.println("请输入:");
        Scanner in = new Scanner(System.in);
        long a = in.nextLong();
        if (a < 0 || a >= 100000) {
            System.out.println("Error Input, please run this program Again!");
            System.exit(0);
        }
        if (a >= 0 && a <= 9) {
            System.out.println(a + "是一人数");
            System.out.println("按逆序输出是:"  + a);
        } else if (a >= 10 && a <= 99) {
            System.out.println(a + "是肆人数");
            System.out.println("按逆序输出是:");
            use.converse(a);
        } else if (a >= 100 && a <= 999) {
            System.out.println(a + "是几人数");
            System.out.println("按逆序输出是:");
            use.converse(a);
        } else if (a >= 1000 && a <= 9999) {
            System.out.println(a + "是三个人数");
            System.out.println("按逆序输出是:");
            use.converse(a);
        } else if (a >= 10000 && a <= 99999) {
            System.out.println(a + "是伍个人数");
            System.out.println("按逆序输出是:");
            use.converse(a);
        }
    }
    public void converse(long l) {
        String s = Long.toString(l);
        char[] ch = s.toCharArray();
        for (int i = ch.length - 1; i >= 0; i--) {
            System.out.print(ch[i]);
        }
    }
}
个人版方法:
import java.util.Scanner;
public class Demo24 {
    public static void main(String[] args) {
        System.out.println("请输入:");
        Scanner in = new Scanner(System.in);
        String str = in.next();
        if (str.matches("\d+")) { //正则表明式
            System.out.println("输入的是" + str.length() + "位数");
            StringBuffer buf = new StringBuffer(str);
            System.out.println(buf.reverse());//字符串反转
        }
    }
}

     for(int j = i; j <= 4 - 1; j++){ //内层循环表示每行有多少个数 j = 1 意味第三个数是1

【程序24】   标题:给七个相当少于5位的正整数,供给:一、求它是二个人数,二、逆序打字与印刷出各位数字。
核心原方法:
import java.util.Scanner;
public class Demo24 {
    public static void main(String[] args) {
        Demo24 use = new Demo24();
        System.out.println("请输入:");
        Scanner in = new Scanner(System.in);
        long a = in.nextLong();
        if (a < 0 || a >= 100000) {
            System.out.println("Error Input, please run this program Again!");
            System.exit(0);
        }
        if (a >= 0 && a <= 9) {
            System.out.println(a + "是一个人数");
            System.out.println("按逆序输出是:"  + a);
        } else if (a >= 10 && a <= 99) {
            System.out.println(a + "是几人数");
            System.out.println("按逆序输出是:");
            use.converse(a);
        } else if (a >= 100 && a <= 999) {
            System.out.println(a + "是肆位数");
            System.out.println("按逆序输出是:");
            use.converse(a);
        } else if (a >= 1000 && a <= 9999) {
            System.out.println(a + "是三位数");
            System.out.println("按逆序输出是:");
            use.converse(a);
        } else if (a >= 10000 && a <= 99999) {
            System.out.println(a + "是七人数");
            System.out.println("按逆序输出是:");
            use.converse(a);
        }
    }
    public void converse(long l) {
        String s = Long.toString(l);
        char[] ch = s.toCharArray();
        for (int i = ch.length - 1; i >= 0; i--) {
            System.out.print(ch[i]);
        }
    }
}
个人版方法:
import java.util.Scanner;
public class Demo24 {
    public static void main(String[] args) {
        System.out.println("请输入:");
        Scanner in = new Scanner(System.in);
        String str = in.next();
        if (str.matches("\d+")) { //正则表明式
            System.out.println("输入的是" + str.length() + "位数");
            StringBuffer buf = new StringBuffer(str);
            System.out.println(buf.reverse());//字符串反转
        }
    }
}

【程序25】   标题:三个5位数,决断它是否回文数。即12321是回文数,个位与万位相同,12人与千位一样。
原方法:
import java.util.Scanner;
public class Demo25 {
    static int[] a = new int[5];
    static int[] b = new int[5];
    public static void main(String[] args) {
        boolean is = false;
        System.out.println("Please input:");
        Scanner in = new Scanner(System.in);
        long l = in.nextLong();
        if (l > 99999 || l < 10000) {
            System.out.println("Input error, please input again!");
            l = in.nextLong();
        }
        for (int i = 4; i >= 0; i--) {
            a[i] = (int) (l / (long) Math.pow(10, i));
            l = (l % (long) Math.pow(10, i));
        }
        System.out.println();
        for (int i = 0, j = 0; i < 5; i++, j++) {
            b[j] = a[i];
        }
        for (int i = 0, j = 4; i < 5; i++, j--) {
            if (a[i] != b[j]) {
                is = false;
                break;
            } else {
                is = true;
            }
        }
        if (is == false) {
            System.out.println("is not a Palindrom!");
        } else if (is == true) {
            System.out.println("is a Palindrom!");
        }
    }
}
个人版:
import java.util.Scanner;
public class Demo25 {
    public static void main(String[] args) {
        System.out.println("请输入:");
        Scanner in = new Scanner(System.in);
        String str = in.next();
        int l = Integer.parseInt(str);//调换来整数
        if (l < 10000 || l > 99999) {
            System.out.println("输入错误!");
            System.exit(0);
        }
        boolean is=false;
        char[] ch = str.toCharArray();
        for(int i=0;i<ch.length/2;i++){
            if(ch[i]!=ch[ch.length-i-1]){
                is=false;
            }else{
                is=true;
            }
        }
        if(is){
            System.out.println("那是一个回文!");
        }else{
            System.out.println("不是四个回文!");
        }
    }
}

           printf("%d",j);//外层循环一回内层循环三次,外层循环在张开下贰次,

【程序25】   标题:一个5位数,剖断它是还是不是回文数。即12321是回文数,个位与万位同样,12位与千位同样。
原方法:
import java.util.Scanner;
public class Demo25 {
    static int[] a = new int[5];
    static int[] b = new int[5];
    public static void main(String[] args) {
        boolean is = false;
        System.out.println("Please input:");
        Scanner in = new Scanner(System.in);
        long l = in.nextLong();
        if (l > 99999 || l < 10000) {
            System.out.println("Input error, please input again!");
            l = in.nextLong();
        }
        for (int i = 4; i >= 0; i--) {
            a[i] = (int) (l / (long) Math.pow(10, i));
            l = (l % (long) Math.pow(10, i));
        }
        System.out.println();
        for (int i = 0, j = 0; i < 5; i++, j++) {
            b[j] = a[i];
        }
        for (int i = 0, j = 4; i < 5; i++, j--) {
            if (a[i] != b[j]) {
                is = false;
                break;
            } else {
                is = true;
            }
        }
        if (is == false) {
            System.out.println("is not a Palindrom!");
        } else if (is == true) {
            System.out.println("is a Palindrom!");
        }
    }
}
个人版:
import java.util.Scanner;
public class Demo25 {
    public static void main(String[] args) {
        System.out.println("请输入:");
        Scanner in = new Scanner(System.in);
        String str = in.next();
        int l = Integer.parseInt(str);//调换到整数
        if (l < 10000 || l > 99999) {
            System.out.println("输入错误!");
            System.exit(0);
        }
        boolean is=false;
        char[] ch = str.toCharArray();
        for(int i=0;i<ch.length/2;i++){
            if(ch[i]!=ch[ch.length-i-1]){
                is=false;
            }else{
                is=true;
            }
        }
        if(is){
            System.out.println("那是二个回文!");
        }else{
            System.out.println("不是叁个回文!");
        }
    }
}

【程序26】   标题:请输入星期几的首先个假名来剖断一下是星期几,即使第一个字母一样,则持续判别第一个字母。
1.程序深入分析:用状态语句相比较好,假诺第多少个假名同样,则决断用状态语句或if语句决断第二个假名。
import java.util.Scanner;
public class Demo26 {
    public static void main(String[] args) {
        char weekSecond;//保存第二字母
        Scanner in = new Scanner(System.in);//接收顾客输入
        System.out.println("请输入星期的第贰个假名:");
        String letter = in.next();
        if (letter.length() == 1) {//剖断客户调整台输入字符串长度是还是不是是三个假名
            char weekFirst = letter.charAt(0);//取第叁个字符
            switch (weekFirst) {
            case 'm':
            case 'M':
                System.out.println("星期一(Monday)");
                break;
            case 't':
            case 'T':
                System.out.print("由于周一(Tuesday)与礼拜五(Thursday)均以字母T伊始,故需输入第三个字母手艺正确判别:");
                letter = in.next();                
                if (letter.length() == 1) {
                    weekSecond = letter.charAt(0);
                    if (weekSecond == 'U' || weekSecond == 'u') {
                        System.out.println("星期二(Tuesday)");
                        break;
                    } else if (weekSecond == 'H' || weekSecond == 'h') {
                        System.out.println("星期四(Thursday)");
                        break;
                    } else {
                        System.out.println("Error!");
                        break;
                    }
                } else {
                    System.out.println("输入错误,只可以输入三个假名,程序甘休!");
                    break;
                }
            case 'w':
            case 'W':
                System.out.println("星期三(Wednesday)");
                break;
            case 'f':
            case 'F':
                System.out.println("星期五(Friday)");
                break;
            case 's':
            case 'S':
                System.out.print("由于周日(Saturday)与周天(Sunday)均以字母S起初,故需输入第叁个假名技艺科学剖断:");
                letter = in.next();
                if (letter.length() == 1) {
                    weekSecond = letter.charAt(0);
                    if (weekSecond == 'A' || weekSecond == 'a') {
                        System.out.println("星期六(Saturday)");
                        break;
                    } else if (weekSecond == 'U' || weekSecond == 'u') {
                        System.out.println("星期日(Sunday)");
                        break;
                    } else {
                        System.out.println("Error!");
                        break;
                    }
                } else {
                    System.out.println("输入错误,只可以输入一个字母,程序截止!");
                    break;
                }
            default:
                System.out.println("输入错误,不可能鉴其他星期值第二个假名,程序甘休!");
                break;
            }
        } else {
            System.out.println("输入错误,只好输入三个字母,程序甘休!");
        }
    }
}

}

【程序26】   标题:请输入星期几的首先个假名来判别一下是星期几,要是第贰个字母一样,则持续判别第二个假名。
1.前后相继深入分析:用状态语句比较好,借使第一个字母同样,则剖断用状态语句或if语句剖断第三个假名。
import java.util.Scanner;
public class Demo26 {
    public static void main(String[] args) {
        char weekSecond;//保存第二假名
        Scanner in = new Scanner(System.in);//接收客户输入
        System.out.println("请输入星期的第一个假名:");
        String letter = in.next();
        if (letter.length() == 1) {//判断客户调控台输入字符串长度是不是是三个假名
            char weekFirst = letter.charAt(0);//取第贰个字符
            switch (weekFirst) {
            case 'm':
            case 'M':
                System.out.println("星期一(Monday)");
                break;
            case 't':
            case 'T':
                System.out.print("由于周四(Tuesday)与礼拜三(Thursday)均以字母T最早,故需输入第贰个假名能力正确决断:");
                letter = in.next();                
                if (letter.length() == 1) {
                    weekSecond = letter.charAt(0);
                    if (weekSecond == 'U' || weekSecond == 'u') {
                        System.out.println("星期二(Tuesday)");
                        break;
                    } else if (weekSecond == 'H' || weekSecond == 'h') {
                        System.out.println("星期四(Thursday)");
                        break;
                    } else {
                        System.out.println("Error!");
                        break;
                    }
                } else {
                    System.out.println("输入错误,只可以输入一个字母,程序截止!");
                    break;
                }
            case 'w':
            case 'W':
                System.out.println("星期三(Wednesday)");
                break;
            case 'f':
            case 'F':
                System.out.println("星期五(Friday)");
                break;
            case 's':
            case 'S':
                System.out.print("由于星期日(Saturday)与周末(Sunday)均以字母S起头,故需输入第3个字母才具科学剖断:");
                letter = in.next();
                if (letter.length() == 1) {
                    weekSecond = letter.charAt(0);
                    if (weekSecond == 'A' || weekSecond == 'a') {
                        System.out.println("星期六(Saturday)");
                        break;
                    } else if (weekSecond == 'U' || weekSecond == 'u') {
                        System.out.println("星期日(Sunday)");
                        break;
                    } else {
                        System.out.println("Error!");
                        break;
                    }
                } else {
                    System.out.println("输入错误,只好输入三个字母,程序截止!");
                    break;
                }
            default:
                System.out.println("输入错误,无法分辨的星期值第三个假名,程序甘休!");
                break;
            }
        } else {
            System.out.println("输入错误,只可以输入多少个假名,程序甘休!");
        }
    }
}

【程序27】   标题:求100之内的素数
public class Demo27 {
    public static void main(String args[]) {
        int sum, i;
        for (sum = 2; sum <= 100; sum++) {
            for (i = 2; i <= sum / 2; i++) {
                if (sum % i == 0)
                    break;
            }
            if (i > sum / 2)
                System.out.println(sum + "是素数");
        }
    }
}

public class Demo27{
    public static void main(String args[]){
        int w=1;
        for(int i=2;i<=100;i++){
            for(int j=2;j<i;j++){
                w=i%j;
                if(w==0)break;
                }
            if(w!=0)
                System.out.println(i+"是素数");
        }
    }
}

printf("n");

【程序27】   题目:求100之内的素数
public class Demo27 {
    public static void main(String args[]) {
        int sum, i;
        for (sum = 2; sum <= 100; sum++) {
            for (i = 2; i <= sum / 2; i++) {
                if (sum % i == 0)
                    break;
            }
            if (i > sum / 2)
                System.out.println(sum + "是素数");
        }
    }
}

public class Demo27{
    public static void main(String args[]){
        int w=1;
        for(int i=2;i<=100;i++){
            for(int j=2;j<i;j++){
                w=i%j;
                if(w==0)break;
                }
            if(w!=0)
                System.out.println(i+"是素数");
        }
    }
}

【程序28】   标题:对拾一个数进行排序。
1.顺序分析:能够应用选取法,即从后9个相比进度中,选拔三个细微的与第多个因素交流,下一次类推,即用第三个要素与后8个开展相比,并开展置换。
本例代码为浮动随机11个数排序,并输入1个数,插入重排序输出:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class Demo28 {
    public static void main(String[] args) {
        int arr[] = new int[11];
        Random r = new Random();
        for (int i = 0; i < 10; i++) {
            arr[i] = r.nextInt(100) + 1; //获得十三个100以内的板寸
        }
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] +"t");
        }
        System.out.print("nPlease Input a int number:" );
        Scanner in = new Scanner(System.in);
        arr[10] = in.nextInt();
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] +"t");
        }
    }
}
私家代码:
import java.util.Arrays;
import java.util.Scanner;
public class Demo28 {
    public static void main(String[] args) {
        System.out.println("请输入10个数:");
        Scanner in = new Scanner(System.in);
        int[] arr = new int[10];
        for (int i = 0; i < 10; i++) {
            arr[i] = in.nextInt();
        }
        System.out.println("原数组为:");
        for (int x : arr) {//foreach遍历
            System.out.print( x + "t");
        }
        Arrays.sort(arr);
        System.out.println();
        System.out.println("排序后为:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "t");
        }
    }
}

}

【程序28】   标题:对12个数进行排序。
1.主次剖析:能够运用选拔法,即从后9个比较进程中,采用三个微细的与第二个因素沟通,后一次类推,即用第二个要素与后8个开展相比较,并实行调换。
本例代码为转移随机12个数排序,并输入1个数,插入重排序输出:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class Demo28 {
    public static void main(String[] args) {
        int arr[] = new int[11];
        Random r = new Random();
        for (int i = 0; i < 10; i++) {
            arr[i] = r.nextInt(100) + 1; //获得拾三个100以内的整数
        }
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] +"t");
        }
        System.out.print("nPlease Input a int number:" );
        Scanner in = new Scanner(System.in);
        arr[10] = in.nextInt();
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] +"t");
        }
    }
}
村办代码:
import java.util.Arrays;
import java.util.Scanner;
public class Demo28 {
    public static void main(String[] args) {
        System.out.println("请输入10个数:");
        Scanner in = new Scanner(System.in);
        int[] arr = new int[10];
        for (int i = 0; i < 10; i++) {
            arr[i] = in.nextInt();
        }
        System.out.println("原数组为:");
        for (int x : arr) {//foreach遍历
            System.out.print( x + "t");
        }
        Arrays.sort(arr);
        System.out.println();
        System.out.println("排序后为:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "t");
        }
    }
}

【程序29】   题目:求一个3*3矩阵主对角线成分之和。
1.主次分析:利用再度for循环调节输入二维数组,再将a[i][i]累加后输出。
public class Demo29 {
    public static void main(String[] args) {
        double sum = 0;
        int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 7, 8 } };
        for (int i = 0; i < 3; i++)
            for (int j = 0; j < 3; j++) {
                if (i == j)
                    sum = sum + array[i][j];
            }
        System.out.println(sum);
    }
}
主负对角线:
 for(i=0;i<n;i++)
         for(j=0;j<n;j++)
         {
            if(i==j) sum1+=a[i][j];
            if(i+j==n-1) sum2+=a[i][j];
         }

======================================================

【程序29】   题目:求一个3*3矩阵主对角线成分之和。
1.顺序深入分析:利用再一次for循环调节输入二维数组,再将a[i][i]累加后输出。
public class Demo29 {
    public static void main(String[] args) {
        double sum = 0;
        int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 7, 8 } };
        for (int i = 0; i < 3; i++)
            for (int j = 0; j < 3; j++) {
                if (i == j)
                    sum = sum + array[i][j];
            }
        System.out.println(sum);
    }
}
主负对角线:
 for(i=0;i<n;i++)
         for(j=0;j<n;j++)
         {
            if(i==j) sum1+=a[i][j];
            if(i+j==n-1) sum2+=a[i][j];
         }

【程序30】   标题:有二个早就排好序的数组。现输入二个数,要求按原来的原理将它插入数组中。
1.主次分析:首先推断此数是还是不是超过最终一个数,然后再思考插入中间的数的气象,插入后此因素之后的数,依次后移二个岗位。
import java.util.Random;
public class Demo30 {
    public static void main(String[] args) {
        int temp = 0;
        int arr[] = new int[12];
        Random r = new Random();
        for (int i = 0; i <= 10; i++)
            arr[i] = r.nextInt(1000);
        for (int i = 0; i <= 10; i++)
            System.out.print(arr[i] + "t");
        for (int i = 0; i <= 9; i++)
            for (int k = i + 1; k <= 10; k++)
                if (arr[i] > arr[k]) {
                    temp = arr[i];
                    arr[i] = arr[k];
                    arr[k] = temp;
                }
        System.out.println();
        for (int k = 0; k <= 10; k++)
            System.out.print(arr[k] + "t");
        arr[11] = r.nextInt(1000);
        for (int k = 0; k <= 10; k++)
            if (arr[k] > arr[11]) {
                temp = arr[11];
                for (int j = 11; j >= k + 1; j--)
                    arr[j] = arr[j - 1];
                    arr[k] = temp;
            }
        System.out.println();
        for (int k = 0; k <= 11; k++)
            System.out.print(arr[k] + "t");
    }
}

while循环----领会为分解版的for循环(未知次数但有循环条件)

【程序30】   标题:有一个业已排好序的数组。现输入叁个数,要求按原本的原理将它插入数组中。
1.程序深入分析:首先推断此数是还是不是超过最后一个数,然后再思量插入中间的数的事态,插入后此因素之后的数,依次后移一个职分。
import java.util.Random;
public class Demo30 {
    public static void main(String[] args) {
        int temp = 0;
        int arr[] = new int[12];
        Random r = new Random();
        for (int i = 0; i <= 10; i++)
            arr[i] = r.nextInt(1000);
        for (int i = 0; i <= 10; i++)
            System.out.print(arr[i] + "t");
        for (int i = 0; i <= 9; i++)
            for (int k = i + 1; k <= 10; k++)
                if (arr[i] > arr[k]) {
                    temp = arr[i];
                    arr[i] = arr[k];
                    arr[k] = temp;
                }
        System.out.println();
        for (int k = 0; k <= 10; k++)
            System.out.print(arr[k] + "t");
        arr[11] = r.nextInt(1000);
        for (int k = 0; k <= 10; k++)
            if (arr[k] > arr[11]) {
                temp = arr[11];
                for (int j = 11; j >= k + 1; j--)
                    arr[j] = arr[j - 1];
                    arr[k] = temp;
            }
        System.out.println();
        for (int k = 0; k <= 11; k++)
            System.out.print(arr[k] + "t");
    }
}

【程序31】   题目:将贰个数组逆序输出。
次第深入分析:用第两个与最后四个置换。
用逆序循环调控变量输出:
public class Demo31 {
    public static void main(String[] args) {
        int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
        for (int i = a.length - 1; i >= 0; i--) {
            System.out.print(a[i] + " ");
        }
    }
}

1,设置循环变量

【程序31】   标题:将贰个数组逆序输出。
程序深入分析:用第三个与最终八个换到。
用逆序循环调整变量输出:
public class Demo31 {
    public static void main(String[] args) {
        int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
        for (int i = a.length - 1; i >= 0; i--) {
            System.out.print(a[i] + " ");
        }
    }
}

【程序32】   标题:取一个整数a从右端最早的第4~7位数字。
import java.util.*;
public class Demo32 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("请输入一个7位以上的正整数:");
        long l = in.nextLong();
        String str = Long.toString(l);
        char[] ch = str.toCharArray();
        int j=ch.length;
        if (j<7){System.out.println("输入错误!");
        } else {
            System.out.println("截取从右端最初的4~7位是:"+ch[j-7]+ch[j-6]+ch[j-5]+ch[j-4]);
        }
    }
}

import java.util.Scanner;
public class Demo32{
    public static void main(String[] args) {
        int a = 0;
        Scanner s = new Scanner(System.in);
        long b = s.nextLong();
        a = (int) (b % 10000000 / 1000);
        System.out.println(a);
    }
}

int i = 0;

【程序32】   标题:取叁个大背头a从右端开端的第4~7位数字。
import java.util.*;
public class Demo32 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("请输入五个7位以上的正整数:");
        long l = in.nextLong();
        String str = Long.toString(l);
        char[] ch = str.toCharArray();
        int j=ch.length;
        if (j<7){System.out.println("输入错误!");
        } else {
            System.out.println("截取从右端早先的4~7位是:"+ch[j-7]+ch[j-6]+ch[j-5]+ch[j-4]);
        }
    }
}

import java.util.Scanner;
public class Demo32{
    public static void main(String[] args) {
        int a = 0;
        Scanner s = new Scanner(System.in);
        long b = s.nextLong();
        a = (int) (b % 10000000 / 1000);
        System.out.println(a);
    }
}

【程序33】   标题:打字与印刷出杨辉三角形(须求打字与印刷出10行如下图)
1.主次剖判:
1
1   1
1   2   1
1   3   3   1
1   4   6   4   1
1   5   10   10   5   1
public class Demo33 {
    public static void main(String args[]) {
        int i, j;
        int a[][];
        int n = 10;
        a = new int[n][n];
        for (i = 0; i < n; i++) {
            a[i][i] = 1;
            a[i][0] = 1;
        }
        for (i = 2; i < n; i++) {
            for (j = 1; j <= i - 1; j++) {
                a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
            }
        }
        for (i = 0; i < n; i++) {
            for (j = 0; j <= i; j++) {
                System.out.printf(a[i][j] + "t");
            }
            System.out.println();
        }
    }
}

2,开始while

【程序33】   标题:打字与印刷出杨辉三角形(供给打字与印刷出10行如下图)
1.顺序深入分析:
1
1   1
1   2   1
1   3   3   1
1   4   6   4   1
1   5   10   10   5   1
public class Demo33 {
    public static void main(String args[]) {
        int i, j;
        int a[][];
        int n = 10;
        a = new int[n][n];
        for (i = 0; i < n; i++) {
            a[i][i] = 1;
            a[i][0] = 1;
        }
        for (i = 2; i < n; i++) {
            for (j = 1; j <= i - 1; j++) {
                a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
            }
        }
        for (i = 0; i < n; i++) {
            for (j = 0; j <= i; j++) {
                System.out.printf(a[i][j] + "t");
            }
            System.out.println();
        }
    }
}

【程序34】   标题:输入3个数a,b,c,按大小顺序输出。
(也可互相相比交换排序)
import java.util.Arrays;
public class Demo34 {
    public static void main(String[] args) {
        int[] arrays = { 800, 56, 500 };
        Arrays.sort(arrays);
        for (int n = 0; n < arrays.length; n++)
            System.out.println(arrays[n]);
    }
}

if(x > y) { int t = x; x = y; y = t; } if(x > z) { int t = x; x = z; z = t; } if(y > z) { int t = y; y = z; z = t; }

while(i < 100) {

【程序34】   题目:输入3个数a,b,c,按大小顺序输出。
(也可交互比较调换排序)
import java.util.Arrays;
public class Demo34 {
    public static void main(String[] args) {
        int[] arrays = { 800, 56, 500 };
        Arrays.sort(arrays);
        for (int n = 0; n < arrays.length; n++)
            System.out.println(arrays[n]);
    }
}

if(x > y) { int t = x; x = y; y = t; } if(x > z) { int t = x; x = z; z = t; } if(y > z) { int t = y; y = z; z = t; }

【程序35】   标题:输入数组,最大的与第三个成分调换,最小的与终极一个因素沟通,输出数组。

    printf("%d",i+1);

【程序35】   标题:输入数组,最大的与首个成分调换,最小的与最后贰个因素交流,输出数组。

import java.util.*;
public class Demo35 {
    public static void main(String[] args) {
        int i, min=0, max=0, n, temp1, temp2;
        int a[];
        System.out.println("定义数组的尺寸:");
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        a = new int[n];
        for (i = 0; i < n; i++) {
            System.out.print("输入第" + (i + 1) + "个数据:");
            a[i] = in.nextInt();
        }

3,设置循环增量

import java.util.*;
public class Demo35 {
    public static void main(String[] args) {
        int i, min=0, max=0, n, temp1, temp2;
        int a[];
        System.out.println("定义数组的长度:");
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        a = new int[n];
        for (i = 0; i < n; i++) {
            System.out.print("输入第" + (i + 1) + "个数据:");
            a[i] = in.nextInt();
        }

        for (i = 1; i < n; i++) {
            if (a[i] > a[max])
                max = i;  
            if (a[i] < a[min])
                min = i;  
        }

    i++

        for (i = 1; i < n; i++) {
            if (a[i] > a[max])
                max = i;  
            if (a[i] < a[min])
                min = i;  
        }

        temp1 = a[0];
        a[0] = a[max];
        a[max] = temp1;

}

        temp1 = a[0];
        a[0] = a[max];
        a[max] = temp1;

        temp2 = a[min];  

例: 10亿每一天花二分一,花多少天

        temp2 = a[min];  

        if (min != 0) { // 如若最小值不是a[0],实践上边
            a[min] = a[n - 1];
            a[n - 1] = temp2;  
        } else {  //要是最小值是a[0],实践上边
            a[max] = a[n - 1];
            a[n - 1] = temp1;
        }
        for (i = 0; i < n; i++) {  
            System.out.print(a[i] + " " );
        }
    }
}

long money = 100000000;

        if (min != 0) { // 借使最小值不是a[0],施行下边
            a[min] = a[n - 1];
            a[n - 1] = temp2;  
        } else {  //假设最小值是a[0],施行上边
            a[max] = a[n - 1];
            a[n - 1] = temp1;
        }
        for (i = 0; i < n; i++) {  
            System.out.print(a[i] + " " );
        }
    }
}

【程序36】   标题:有n个整数,使其前边各数顺序向后移m个职位,最终m个数产生最前面包车型客车m个数

int   day = 0;

【程序36】   标题:有n个整数,使其前方各数顺序向后移m个岗位,最终m个数形成最前头的m个数

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Demo36 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("输入数字个数n:");
        int n = in.nextInt();
        System.out.println("输入后移位数m:");
        int m = in.nextInt();
        LinkedList<Integer> list = new LinkedList<Integer>();
        for (int i = 0; i < n; i++) {
            System.out.println("请输入第"+(i+1)+"个数:");
            list.add(in.nextInt());
        }
        System.out.println("原数据排序为:");
        for (int t : list) {
            System.out.print(t + " " );
        }
        System.out.println();
        List<Integer> temp1 = list.subList(list.size() - m, list.size());
        List<Integer> temp2 = list.subList(0, list.size() - m);
        temp2.addAll(0, temp1);
        System.out.println("移动后排序为;");
        for (int t : temp2) {
            System.out.print(t + " " );
        }
    }
}

import java.util.*;
public class Demo36{
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);        
        System.out.println("请定义数组的长短:");
        int n=in.nextInt();
        System.out.println("请输入移动的位数:");
        int m=in.nextInt();
        int [] arr=new int [n];
        int [] brr=new int [n];
        for(int i=0;i<n;i++){
            System.out.println("请输入第"+(i+1)+"个数:");
            arr[i]=in.nextInt();
        }
        
        System.out.println("排序前:");
        for(int i=0;i<n;i++){
            System.out.print(arr[i]+" ");
        }
        System.out.println();
        
        for(int i=0;i<m;i++){
            brr[i]=arr[n-m+i];
        }
        for(int i=0;i<n-m;i++){
            arr[m+i]=arr[i];
        }
        for(int i=0;i<m;i++){
            arr[i]=brr[i];
        }
        
        System.out.println("排序后:");
        for(int i=0;i<n;i++){
            System.out.print(arr[i]+" ");
        }
    }
}

while(money != 0){

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Demo36 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("输入数字个数n:");
        int n = in.nextInt();
        System.out.println("输入后移位数m:");
        int m = in.nextInt();
        LinkedList<Integer> list = new LinkedList<Integer>();
        for (int i = 0; i < n; i++) {
            System.out.println("请输入第"+(i+1)+"个数:");
            list.add(in.nextInt());
        }
        System.out.println("原数据排序为:");
        for (int t : list) {
            System.out.print(t + " " );
        }
        System.out.println();
        List<Integer> temp1 = list.subList(list.size() - m, list.size());
        List<Integer> temp2 = list.subList(0, list.size() - m);
        temp2.addAll(0, temp1);
        System.out.println("移动后排序为;");
        for (int t : temp2) {
            System.out.print(t + " " );
        }
    }
}

import java.util.*;
public class Demo36{
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);        
        System.out.println("请定义数组的长度:");
        int n=in.nextInt();
        System.out.println("请输入移动的位数:");
        int m=in.nextInt();
        int [] arr=new int [n];
        int [] brr=new int [n];
        for(int i=0;i<n;i++){
            System.out.println("请输入第"+(i+1)+"个数:");
            arr[i]=in.nextInt();
        }
        
        System.out.println("排序前:");
        for(int i=0;i<n;i++){
            System.out.print(arr[i]+" ");
        }
        System.out.println();
        
        for(int i=0;i<m;i++){
            brr[i]=arr[n-m+i];
        }
        for(int i=0;i<n-m;i++){
            arr[m+i]=arr[i];
        }
        for(int i=0;i<m;i++){
            arr[i]=brr[i];
        }
        
        System.out.println("排序后:");
        for(int i=0;i<n;i++){
            System.out.print(arr[i]+" ");
        }
    }
}

【程序37】   题目:有n个人围成一圈,顺序排号。从第一私家最初报数(从1到3报数),凡报到3的人脱病逝界,问最终留给的是原本第几号的那位。
(Joseph环难题,百度百科偶然间复杂度最简便易行的数学方法)
原例代码:
import java.util.Scanner;
public class Demo37 {
    public static void main(String[] args) {
        System.out.println("请输人数n:");
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        boolean[] arr = new boolean[n];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = true; //下标为TRUE时表达还在圈里
        }
        int leftCount = n;
        int countNum = 0;
        int index = 0;
        while (leftCount > 1) {
            if (arr[index] == true) { //当在圈里时
                countNum++;  //报数递加
                if (countNum == 3) { //报数为3时
                    countNum = 0; //从零起始持续报数
                    arr[index] = false; //此人退出世界
                    leftCount--; //剩余名数减一
                }
            }
            index++; //每报一回数,下标加一
            if (index == n) { //是循环数数,当下标大于n时,表明已经数了一圈,
                index = 0; //将下标设为零重新早先。
            }
        }
        for (int i = 0; i < n; i++) {
            if (arr[i] == true) {
                System.out.println(i);
            }
        }
    }
}
私家代码1:
import java.util.Scanner;
public class Demo37 {
    public static void main(String[] args) {
        System.out.println("请输入人数:");
        Scanner in = new Scanner(System.in);
        int[] a = new int[in.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i] = 1;
        }
        int left = a.length;
        int j = 0;
        int num = 0;
        while (left > 1) {
            if (a[j] == 1) {
                num++;
            }
            if (num == 3) {
                a[j] = 0;
                num = 0;
                left--;
            }
            j++;
            if (j == a.length) {
                j = 0;
            }
        }
        for (int i = 0; i < a.length; i++) {
            if (a[i] == 1) {
                System.out.println("最终留给的人是"+ (i + 1) + "号");
                break;
            }
        }
    }
}
民用代码2:
import java.util.LinkedList;
import java.util.Scanner;
public class Demo37 {
    public static void main(String[] args) {
        LinkedList<Integer> l = new LinkedList<Integer>();
        System.out.println("请输入人数:");
        Scanner in = new Scanner(System.in);
        int len = in.nextInt();
        for (int i = 0; i < len; i++) {
            l.add(i + 1);
        }
        int sum = 0;
        int temp = 0;
        for (int i = 0; sum != len - 1;) {
            if (l.get(i) != 0) {
                temp++;
            }
            if (temp == 3) {
                l.remove(i);
                l.add(i, 0);
                temp = 0;
                sum++;
            }
            i++;
            if (i == l.size()) {
                i = 0;
            }
        }
        for (int t : l) {
            if (t != 0) {
                System.out.println("最终留下的人是" + t + "号");
            }
        }
    }
}

     day++;

【程序37】   标题:有n个人围成一圈,顺序排号。从第一私人商品房起始报数(从1到3报数),凡报到3的人脱归西界,问最终留给的是原先第几号的那位。
(Joseph环难题,百度百科不时间复杂度最简便易行的数学方法)
原例代码:
import java.util.Scanner;
public class Demo37 {
    public static void main(String[] args) {
        System.out.println("请输人数n:");
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        boolean[] arr = new boolean[n];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = true; //下标为TRUE时表达还在圈里
        }
        int leftCount = n;
        int countNum = 0;
        int index = 0;
        while (leftCount > 1) {
            if (arr[index] == true) { //当在圈里时
                countNum++;  //报数递加
                if (countNum == 3) { //报数为3时
                    countNum = 0; //从零开端持续报数
                    arr[index] = false; //这厮退出世界
                    leftCount--; //剩余名数减一
                }
            }
            index++; //每报三遍数,下标加一
            if (index == n) { //是循环数数,当下标大于n时,表达已经数了一圈,
                index = 0; //将下标设为零重新早先。
            }
        }
        for (int i = 0; i < n; i++) {
            if (arr[i] == true) {
                System.out.println(i);
            }
        }
    }
}
私家代码1:
import java.util.Scanner;
public class Demo37 {
    public static void main(String[] args) {
        System.out.println("请输入人数:");
        Scanner in = new Scanner(System.in);
        int[] a = new int[in.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i] = 1;
        }
        int left = a.length;
        int j = 0;
        int num = 0;
        while (left > 1) {
            if (a[j] == 1) {
                num++;
            }
            if (num == 3) {
                a[j] = 0;
                num = 0;
                left--;
            }
            j++;
            if (j == a.length) {
                j = 0;
            }
        }
        for (int i = 0; i < a.length; i++) {
            if (a[i] == 1) {
                System.out.println("末了留给的人是"+ (i + 1) + "号");
                break;
            }
        }
    }
}
私家代码2:
import java.util.LinkedList;
import java.util.Scanner;
public class Demo37 {
    public static void main(String[] args) {
        LinkedList<Integer> l = new LinkedList<Integer>();
        System.out.println("请输入人数:");
        Scanner in = new Scanner(System.in);
        int len = in.nextInt();
        for (int i = 0; i < len; i++) {
            l.add(i + 1);
        }
        int sum = 0;
        int temp = 0;
        for (int i = 0; sum != len - 1;) {
            if (l.get(i) != 0) {
                temp++;
            }
            if (temp == 3) {
                l.remove(i);
                l.add(i, 0);
                temp = 0;
                sum++;
            }
            i++;
            if (i == l.size()) {
                i = 0;
            }
        }
        for (int t : l) {
            if (t != 0) {
                System.out.println("最后留下的人是" + t + "号");
            }
        }
    }
}

【程序38】   题目:写叁个函数,求二个字符串的长短,在main函数中输入字符串,并出口其尺寸。

     money = money / 2;

【程序38】   标题:写贰个函数,求三个字符串的尺寸,在main函数中输入字符串,并出口其长度。

import java.util.Scanner;
public class Demo38 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String mys = in.next();
        System.out.println(str_len(mys));
    }
    public static int str_len(String x) {
        return x.length();
    }
}

import java.util.Scanner;
public class Demo38 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入三个字符串:");
        String mys = in.next();
        System.out.println(mys.length());
    }
}

}

import java.util.Scanner;
public class Demo38 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入叁个字符串:");
        String mys = in.next();
        System.out.println(str_len(mys));
    }
    public static int str_len(String x) {
        return x.length();
    }
}

import java.util.Scanner;
public class Demo38 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入三个字符串:");
        String mys = in.next();
        System.out.println(mys.length());
    }
}

【程序39】  标题:编写三个函数,输入n为偶数时,调用函数求三分之一+二分之一+...+1/n,当输入n为奇数时,调用函数1/1+58%+...+1/n
import java.util.Scanner;
public class Demo39 {
    public static double ouShu(int n) {
        double result = 0;
        for (int i = 2; i <= n; i = i + 2) {
            result +=  1 / (double) i;
        }
        return result;
    }
    public static double jiShu(int n) {
        double result = 0;
        for (int i = 1; i <= n; i = i + 2) {
            result += 1 / (double) i;
        }
        return result;
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("输入n的值:");
        int n = in.nextInt();
        if (n % 2 == 0) { //偶数,1/2+1/4+...+1/n
            System.out.println(ouShu(n));
        } else { //奇数,1/1+1/3+...+1/n
            System.out.println(jiShu(n));
        }
    }
}

printf("%d",day);

【程序39】  标题:编写贰个函数,输入n为偶数时,调用函数求三分之二+53%+...+1/n,当输入n为奇数时,调用函数1/1+52%+...+1/n
import java.util.Scanner;
public class Demo39 {
    public static double ouShu(int n) {
        double result = 0;
        for (int i = 2; i <= n; i = i + 2) {
            result +=  1 / (double) i;
        }
        return result;
    }
    public static double jiShu(int n) {
        double result = 0;
        for (int i = 1; i <= n; i = i + 2) {
            result += 1 / (double) i;
        }
        return result;
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("输入n的值:");
        int n = in.nextInt();
        if (n % 2 == 0) { //偶数,1/2+1/4+...+1/n
            System.out.println(ouShu(n));
        } else { //奇数,1/1+1/3+...+1/n
            System.out.println(jiShu(n));
        }
    }
}

【程序40】  标题:字符串排序。
(利用容器类中的sort方法)
import java.util.*;
public class Demo40 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("010102");
        list.add("010003");
        list.add("010201");
        Collections.sort(list);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

import java.util.*;

======================================================

【程序40】  题目:字符串排序。
(利用容器类中的sort方法)
import java.util.*;
public class Demo40 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("010102");
        list.add("010003");
        list.add("010201");
        Collections.sort(list);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

import java.util.*;

public class Demo40 {
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        System.out.println("请定义字符串的个数:");
        int n=in.nextInt();
        String[] str=new String[n];
        for(int i=0;i<str.length;i++){
            System.out.println("请输入第"+(i+1)+"字符串:");
            str[i]=in.next();
        }
        strSort(n,str);
        System.out.println("字符串排序后:");
        for(int i=0;i<str.length;i++){
            System.out.print(str[i]+" ");
        }
    }
    public static void strSort(int n,String[] arr){
        for(int i=0; i<n; i++) {
            for(int j=i+1; j<n; j++) {
                if(compare(arr[i], arr[j]) == false) {
                    String temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;
                }
            }
        }
    }
    static boolean compare(String s1, String s2) {
        boolean result = true;
        for(int i=0; i<s1.length() && i<s2.length(); i++) {
            if(s1.charAt(i) > s2.charAt(i)) {
                result = false;
                break;
            } else if(s1.charAt(i) <s2.charAt(i)) {
                result = true;
                break;
            } else {
                if(s1.length() < s2.length()) {
                    result = true;
                } else {
                    result = false;
                }
            }
        }
        return result;
    }
}

break 关键字

public class Demo40 {
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        System.out.println("请定义字符串的个数:");
        int n=in.nextInt();
        String[] str=new String[n];
        for(int i=0;i<str.length;i++){
            System.out.println("请输入第"+(i+1)+"字符串:");
            str[i]=in.next();
        }
        strSort(n,str);
        System.out.println("字符串排序后:");
        for(int i=0;i<str.length;i++){
            System.out.print(str[i]+" ");
        }
    }
    public static void strSort(int n,String[] arr){
        for(int i=0; i<n; i++) {
            for(int j=i+1; j<n; j++) {
                if(compare(arr[i], arr[j]) == false) {
                    String temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;
                }
            }
        }
    }
    static boolean compare(String s1, String s2) {
        boolean result = true;
        for(int i=0; i<s1.length() && i<s2.length(); i++) {
            if(s1.charAt(i) > s2.charAt(i)) {
                result = false;
                break;
            } else if(s1.charAt(i) <s2.charAt(i)) {
                result = true;
                break;
            } else {
                if(s1.length() < s2.length()) {
                    result = true;
                } else {
                    result = false;
                }
            }
        }
        return result;
    }
}

【程序41】   标题:沙滩上有一批黄肉桃,八只猕猴来分。第四头猴子把那堆水蜜桃平均分为五份,多了三个,那只猕猴把多的贰个扔入海中,拿走了一份。第一只猴子把剩余的水蜜桃又平均分为五份,又多了贰个,它一样把多的多少个扔入海中,拿走了一份,第三、第四、第八只猴子都以那样做的,问沙滩上本来起码有个别许个寿星桃?
核心源码:
public class Demo41 {
    static int ts = 0;// 桃子总的数量
    int fs = 1;// 记录分的次数
    static int hs = 5;// 猴子数
    int tsscope = 5000;// 桃子数的取值范围,太大轻便溢出。
    public int fT(int t) {
        if (t == tsscope) {
            // 当水蜜桃数到了最大的取值范围时撤销递归
            System.out.println("结束");
            return 0;
        } else {
            if ((t - 1) % hs == 0 && fs <= hs) {
                if (fs == hs) {
                    System.out.println("白桃数=" + ts + "时知足分桃条件");
                }
                fs += 1;
                return fT((t - 1) / 5 * 4);// 再次来到猴子拿走一份后的盈余的总和
            } else {
                // 没满意条件
                fs = 1;// 分的次数重新设置为1
                return fT(ts += 1);// 水蜜桃数加+1
            }
        }
    }
    public static void main(String[] args) {
        new Demo41().fT(0);
    }
}
村办修改:
public class Demo41 {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 6;; i++) {// 最少6个分最终一遍
            sum = i;// 桃子数
            for (int j = 0; j < 5; j++) {// 分的次数循环
                if ((sum - 1) % 5 == 0 && j < 5) {// 若是扔二个后能均分5份,继续分
                    sum = (sum - 1) / 5 * 4;// 每分一遍剩余白桃数
                    if (j == 4) {// 假若已分5次,且仍是可以除尽,输出,退出程序
                        System.out.println(i);
                        System.exit(0);
                    }
                }
            }
        }
    }
}

在循环中一经实施到break,就可认为止离她近期一层循环

【程序41】   标题:海滩上有一批寿星桃,三只猴子来分。第贰头猕猴把那堆黄肉桃平均分为五份,多了叁个,这只猴子把多的多少个扔入海中,拿走了一份。第三头猕猴把剩下的桃子又平均分为五份,又多了七个,它一样把多的一个扔入海中,拿走了一份,第三、第四、第四只猕猴都以那样做的,问沙滩上本来最少有微微个黄肉桃?
主题源码:
public class Demo41 {
    static int ts = 0;// 寿星桃总量
    int fs = 1;// 记录分的次数
    static int hs = 5;// 猴子数
    int tsscope = 四千;// 黄肉桃数的取值范围,太大轻巧溢出。
    public int fT(int t) {
        if (t == tsscope) {
            // 当白桃数到了最大的取值范围时撤废递归
            System.out.println("结束");
            return 0;
        } else {
            if ((t - 1) % hs == 0 && fs <= hs) {
                if (fs == hs) {
                    System.out.println("黄肉桃数=" + ts + "时满意分桃条件");
                }
                fs += 1;
                return fT((t - 1) / 5 * 4);// 再次来到猴子拿走一份后的盈余的总和
            } else {
                // 没满意条件
                fs = 1;// 分的次数重新载入参数为1
                return fT(ts += 1);// 水蜜桃数加+1
            }
        }
    }
    public static void main(String[] args) {
        new Demo41().fT(0);
    }
}
民用修改:
public class Demo41 {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 6;; i++) {// 起码6个分最终贰遍
            sum = i;// 桃子数
            for (int j = 0; j < 5; j++) {// 分的次数循环
                if ((sum - 1) % 5 == 0 && j < 5) {// 假若扔一个后能均分5份,继续分
                    sum = (sum - 1) / 5 * 4;// 每分三回剩余黄桃数
                    if (j == 4) {// 如若已分5次,且仍是可以除尽,输出,退出程序
                        System.out.println(i);
                        System.exit(0);
                    }
                }
            }
        }
    }
}

【程序42】   题目:809*??=800*??+9*??+1。在那之中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
(本题为无解,去掉1有解)
public class Demo42 {
    public static void main(String[] args) {
        for (int i = 10; i < 100; i++) {
            if (809 * i == (800 * i + 9 * i + 1) && 8 * i >= 10 && 8 * i < 100
                    && 9 * i >= 100 && 9 * i < 1000) {
                System.out.println("?? =" + i);
                System.out.println("809*??="+ 809 * i);
                System.exit(0);
            }
        }
    }
}

for(int i = 0; i < 30; i++){

【程序42】   题目:809*??=800*??+9*??+1。当中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
(本题为无解,去掉1有解)
public class Demo42 {
    public static void main(String[] args) {
        for (int i = 10; i < 100; i++) {
            if (809 * i == (800 * i + 9 * i + 1) && 8 * i >= 10 && 8 * i < 100
                    && 9 * i >= 100 && 9 * i < 1000) {
                System.out.println("?? =" + i);
                System.out.println("809*??="+ 809 * i);
                System.exit(0);
            }
        }
    }
}

【程序43】   题目:求0—7所能组成的奇数个数。
暴力算法:
public class Demo43 {
    public static boolean isJiShu(int n) {
        if (n % 2 != 0) {
            return true;
        } else {
            return false;
        }
    }
    public static boolean fun(char c) {
        if (c >= '0' && c <= '7') {
            return true;
        } else {
            return false;
        }
    }
    public static void main(String[] args) {
        int count = 0;
        String s;
        for (int i = 0; i < 100000000; i++) {
            s = "" + i;
            boolean flag = true;
            char[] c = s.toCharArray();
            for (int j = 0; j < c.length; j++) {
                if (!fun(c[j])) {
                    flag = false;
                    break;
                }
            }
            if (flag && isJiShu(i)) {
                count++;
            }
            s = "";
        }
        System.out.println("共" + count + "个。");
    }
}
数学算法:
public class Demo43 {
    public static void main(String[] args) {
        // 因为是奇数,所以个位只好是1,3,5,7共4种,前边可随意排列
        int count = 4;// 个位的4种
        // 2位时,十位有8种,个位4种,8×4
        // 3位时,8×8×4……
        for (int i = 1; i < 8; i++) {
            count = 8 * count;
            System.out.println("count:" + count);
        }
    }
}
私家算法:
//组成1位数是4个。
//组成2位数是7*4个。
//组成3位数是7*8*4个。
//组成4位数是7*8*8*4个。
//......
public class Demo43 {
    public static void main (String[] args) {
        int sum=4;
        int j;
        System.out.println("组成1位数是 "+sum+" 个");
        sum=sum*7;
        System.out.println("组成2位数是 "+sum+" 个");
        for(j=3;j<=9;j++){
            sum=sum*8;
            System.out.println("组成"+j+"位数是 "+sum+" 个");
        }
    }
}

 if (i == 10){

【程序43】   标题:求0—7所能组成的奇数个数。
武力算法:
public class Demo43 {
    public static boolean isJiShu(int n) {
        if (n % 2 != 0) {
            return true;
        } else {
            return false;
        }
    }
    public static boolean fun(char c) {
        if (c >= '0' && c <= '7') {
            return true;
        } else {
            return false;
        }
    }
    public static void main(String[] args) {
        int count = 0;
        String s;
        for (int i = 0; i < 100000000; i++) {
            s = "" + i;
            boolean flag = true;
            char[] c = s.toCharArray();
            for (int j = 0; j < c.length; j++) {
                if (!fun(c[j])) {
                    flag = false;
                    break;
                }
            }
            if (flag && isJiShu(i)) {
                count++;
            }
            s = "";
        }
        System.out.println("共" + count + "个。");
    }
}
数学算法:
public class Demo43 {
    public static void main(String[] args) {
        // 因为是奇数,所以个位只好是1,3,5,7共4种,前边可无论排列
        int count = 4;// 个位的4种
        // 2位时,十位有8种,个位4种,8×4
        // 3位时,8×8×4……
        for (int i = 1; i < 8; i++) {
            count = 8 * count;
            System.out.println("count:" + count);
        }
    }
}
个体算法:
//组成1位数是4个。
//组成2位数是7*4个。
//组成3位数是7*8*4个。
//组成4位数是7*8*8*4个。
//......
public class Demo43 {
    public static void main (String[] args) {
        int sum=4;
        int j;
        System.out.println("组成1位数是 "+sum+" 个");
        sum=sum*7;
        System.out.println("组成2位数是 "+sum+" 个");
        for(j=3;j<=9;j++){
            sum=sum*8;
            System.out.println("组成"+j+"位数是 "+sum+" 个");
        }
    }
}

【程序44】   标题:三个偶数总能表示为多少个素数之和。(注:哥德Bach猜度是想注脚对其他大于6的本来数n之内的富有偶数可以表示为七个素数之和)
public class Demo44 {
    public static boolean isSuShu(int x) {
        if (x == 0 || x == 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(x); i++) {
            if (x % i == 0) {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        // 求了下100以内的景况
        for (int i = 0; i < 100; i = i + 2) {
            for (int j = 0; j <= (i + 1) / 2; j++) {
                if (isSuShu(j) && isSuShu(i - j)) {
                    System.out.println(i + "=" + j + "+" + (i - j));
                }
            }
        }
    }
}

public class Demo44{    
    public static void main(String[] args){    
        for (int i=6;i<=100 ;i+=2 ){    
            for (int j=2;j<100 ;j++ ){        
                if(!isPrime(j)||!isPrime(i-j)||j>=i)
                continue;            
                System.out.println(i+"="+j+"+"+(i-j));            
                break;        
            }        
        }    
    }   

 printf("一往而生");

【程序44】   标题:三个偶数总能表示为多个素数之和。(注:哥德Bach估量是想表达对别的大于6的当然数n之内的具有偶数可以象征为八个素数之和)
public class Demo44 {
    public static boolean isSuShu(int x) {
        if (x == 0 || x == 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(x); i++) {
            if (x % i == 0) {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        // 求了下100以内的意况
        for (int i = 0; i < 100; i = i + 2) {
            for (int j = 0; j <= (i + 1) / 2; j++) {
                if (isSuShu(j) && isSuShu(i - j)) {
                    System.out.println(i + "=" + j + "+" + (i - j));
                }
            }
        }
    }
}

public class Demo44{    
    public static void main(String[] args){    
        for (int i=6;i<=100 ;i+=2 ){    
            for (int j=2;j<100 ;j++ ){        
                if(!isPrime(j)||!isPrime(i-j)||j>=i)
                continue;            
                System.out.println(i+"="+j+"+"+(i-j));            
                break;        
            }        
        }    
    }   

    public static boolean isPrime(int n){    
        for (int i=2;i<n ;i++ ){        
            if(n%i==0)return false;    
        }            
        return true;    
    }
}

 break;

    public static boolean isPrime(int n){    
        for (int i=2;i<n ;i++ ){        
            if(n%i==0)return false;    
        }            
        return true;    
    }
}

【程序45】   题目:(1)判定多少个9能被一个素数整除。(2)推断七个整数能被多少个9整除。(原题:一个素数能被多少个9整除)
(一)
public class Demo45 {
    public static boolean isSuShu(int x) {
        if (x == 0 || x == 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(x); i++) {
            if (x % i == 0) {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        int[] a = new int[100];
        int n = 0;
        int num = 0;
        // 长度100的素数数组
        while (n < 100) {
            if (isSuShu(num)) {
                a[n] = num;
                n++;
                num++;
            } else {
                num++;
            }
        }
        /* for (int t : a) {
         System.out.println(t);
         }*/
        String s = "9";
        int index = 0;
        while (s.length() < 9) {
            if (new Integer(s).intValue() % a[index] == 0) {
                System.out.println(s + "%" + a[index] + "=0");
                if (index < 100 - 1) {
                    index++;
                } else {
                    index = 0;
                    s = s + "9";
                }
                // System.exit(0);
            } else {
                if (index < 100 - 1) {
                    index++;
                } else {
                    index = 0;
                    s = s + "9";
                }
            }
        }
    }
}

}

【程序45】   标题:(1)判定多少个9能被二个素数整除。(2)剖断一个大背头能被多少个9整除。(原题:二个素数能被多少个9整除)
(一)
public class Demo45 {
    public static boolean isSuShu(int x) {
        if (x == 0 || x == 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(x); i++) {
            if (x % i == 0) {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        int[] a = new int[100];
        int n = 0;
        int num = 0;
        // 长度100的素数数组
        while (n < 100) {
            if (isSuShu(num)) {
                a[n] = num;
                n++;
                num++;
            } else {
                num++;
            }
        }
        /* for (int t : a) {
         System.out.println(t);
         }*/
        String s = "9";
        int index = 0;
        while (s.length() < 9) {
            if (new Integer(s).intValue() % a[index] == 0) {
                System.out.println(s + "%" + a[index] + "=0");
                if (index < 100 - 1) {
                    index++;
                } else {
                    index = 0;
                    s = s + "9";
                }
                // System.exit(0);
            } else {
                if (index < 100 - 1) {
                    index++;
                } else {
                    index = 0;
                    s = s + "9";
                }
            }
        }
    }
}

(二)
import java.util.*; public class Demo45 {
    public static void main (String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("请输入一个卡尺头:");
        int num = in.nextInt();
        int tmp = num;
        int count = 0;
        for(int i = 0 ; tmp%9 == 0 ;){
            tmp = tmp/9;
            count ++;
        }
        System.out.println(num+" 能够被 "+count+" 个9 整除。");
    }
}
【程序46】   标题:多个字符串连接程序。
import java.util.Scanner;
public class Demo46 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("输入第三个字符串:");
        String s1 = in.next();
        System.out.println("输入第多个字符串:");
        String s2 = in.next();
        System.out.println("连接后:n" + s1 + s2);
    }
}

import java.util.*;
public class Demo46 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("请输入三个字符串:");
        String str1 = in.nextLine();
        System.out.print("请再输入贰个字符串:");
        String str2 = in.nextLine();
        String str = str1+str2;
        System.out.println("连接后的字符串是:"+str);
    }
}

printf("情不知所起");

(二)
import java.util.*; public class Demo45 {
    public static void main (String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("请输入八个平头:");
        int num = in.nextInt();
        int tmp = num;
        int count = 0;
        for(int i = 0 ; tmp%9 == 0 ;){
            tmp = tmp/9;
            count ++;
        }
        System.out.println(num+" 能够被 "+count+" 个9 整除。");
    }
}
【程序46】   标题:多少个字符串连接程序。
import java.util.Scanner;
public class Demo46 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("输入第叁个字符串:");
        String s1 = in.next();
        System.out.println("输入第2个字符串:");
        String s2 = in.next();
        System.out.println("连接后:n" + s1 + s2);
    }
}

import java.util.*;
public class Demo46 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("请输入二个字符串:");
        String str1 = in.nextLine();
        System.out.print("请再输入贰个字符串:");
        String str2 = in.nextLine();
        String str = str1+str2;
        System.out.println("连接后的字符串是:"+str);
    }
}

【程序47】   标题:读取7个数(1—50)的卡尺头值,每读取三个值,程序打字与印刷出该值个数的。
import java.util.*;
public class Demo47 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int n=1,num;
        while(n<=7){
            do{
                System.out.print("请输入贰个1--50 之间的整数:");
                num= s.nextInt();
            }while(num<1||num>50);
            for(int i=1;i<=num;i++)
            {System.out.print("*");
            }
            System.out.println();
            n ++;
        }
    }
}

import java.util.Scanner;
public class Demo47 {
    public static void print(int n) {
        for (int i = 0; i < n; i++) {
            System.out.print("*");
        }
        System.out.println();
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        for (int i = 0; i < 7; i++) {
            int temp = in.nextInt();
            print(temp);
        }
    }
}

}

【程序47】   题目:读取7个数(1—50)的寸头值,每读取三个值,程序打印出该值个数的。
import java.util.*;
public class Demo47 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int n=1,num;
        while(n<=7){
            do{
                System.out.print("请输入贰个1--50 之间的整数:");
                num= s.nextInt();
            }while(num<1||num>50);
            for(int i=1;i<=num;i++)
            {System.out.print("*");
            }
            System.out.println();
            n ++;
        }
    }
}

import java.util.Scanner;
public class Demo47 {
    public static void print(int n) {
        for (int i = 0; i < n; i++) {
            System.out.print("*");
        }
        System.out.println();
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        for (int i = 0; i < 7; i++) {
            int temp = in.nextInt();
            print(temp);
        }
    }
}

【程序48】   标题:有些公司采纳电话传递数据,数据是三个人的大背头,在传递进度中是加密的,加密法则如下:每位数字都助长5,然后用和除以10的余数取代该数字,再将率先位和第1位沟通,第三个人和第肆个人调换。
import java.util.Scanner;
public class Demo48{
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入三个4位数字:");
        String str = in.next();
        if (!((str).matches("\d{4}"))) {
            System.out.println("输入的不是4位数字!");
            System.exit(0);
        }
        char[] c = str.toCharArray();
        int[] a = new int[4];
        for (int i = 0; i < a.length; i++) {
            a[i] = ((int) (c[i] - '0') + 5) % 10;
        }
        int t;
        t = a[0];
        a[0] = a[3];
        a[3] = t;
        t = a[1];
        a[1] = a[2];
        a[2] = t;
        System.out.println("结果是:" + a[0] + a[1] + a[2] + a[3]);
    }
}

import java.util.*;
public class Demo48 {
    public static void main(String args[]) {
        Scanner s = new Scanner(System.in);
        int num=0,temp;
        do{
            System.out.print("请输入三个4位正整数:");
            num = s.nextInt();
        }while (num<1000||num>9999);
        int a[]=new int[4];
        a[0] = num/一千; //取千位的数字
        a[1] = (num/100)%10; //取百位的数字
        a[2] = (num/10)%10; //取十一人的数字
        a[3] = num%10; //取个位的数字
        for(int j=0;j<4;j++) {
            a[j]+=5; a[j]%=10;
        }
        for(int j=0;j<=1;j++) {
            temp = a[j]; a[j] = a[3-j]; a[3-j] =temp;
        }
        System.out.print("加密后的数字为:");
        for(int j=0;j<4;j++) System.out.print(a[j]);
    }
}

======================================================

【程序48】   标题:某些公司使用电话传递数据,数据是三人的板寸,在传递进程中是加密的,加密准则如下:每位数字都加多5,然后用和除以10的余数代替该数字,再将首先位和第肆人调换,第三个人和第肆个人交流。
import java.util.Scanner;
public class Demo48{
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入三个4位数字:");
        String str = in.next();
        if (!((str).matches("\d{4}"))) {
            System.out.println("输入的不是4位数字!");
            System.exit(0);
        }
        char[] c = str.toCharArray();
        int[] a = new int[4];
        for (int i = 0; i < a.length; i++) {
            a[i] = ((int) (c[i] - '0') + 5) % 10;
        }
        int t;
        t = a[0];
        a[0] = a[3];
        a[3] = t;
        t = a[1];
        a[1] = a[2];
        a[2] = t;
        System.out.println("结果是:" + a[0] + a[1] + a[2] + a[3]);
    }
}

import java.util.*;
public class Demo48 {
    public static void main(String args[]) {
        Scanner s = new Scanner(System.in);
        int num=0,temp;
        do{
            System.out.print("请输入多个4位正整数:");
            num = s.nextInt();
        }while (num<1000||num>9999);
        int a[]=new int[4];
        a[0] = num/一千; //取千位的数字
        a[1] = (num/100)%10; //取百位的数字
        a[2] = (num/10)%10; //取12个人的数字
        a[3] = num%10; //取个位的数字
        for(int j=0;j<4;j++) {
            a[j]+=5; a[j]%=10;
        }
        for(int j=0;j<=1;j++) {
            temp = a[j]; a[j] = a[3-j]; a[3-j] =temp;
        }
        System.out.print("加密后的数字为:");
        for(int j=0;j<4;j++) System.out.print(a[j]);
    }
}

【程序49】   标题:总括字符串中子串出现的次数。
import java.util.Scanner;
public class Demo49 {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.println("请输入主串:");
        String str1 = in.nextLine();
        System.out.println("请输入子串:");
        String str2 = in.nextLine();
        // 生成子串长度的N个字符串数组
        String[] sa = new String[str1.length() - str2.length() + 1];
        for (int i = 0; i < sa.length; i++) {
            sa[i] = str1.substring(i, i + str2.length());
        }
        int sum = 0;
        // 子串与N个拆开的子串比对
        for (int i = 0; i < sa.length; i++) {
            if (sa[i].equals(str2)) {
                // 成功配成对,计数器+1;
                sum++;
                // 因为不划算重叠的子串,所以跳过配对现在的片段拆分子串
                i = i + str2.length();
            }
        }
        System.out.println("主串中国共产党包括" + sum + "个字串");
    }
}

continue 一旦遇到此首要字,会跳过此番巡回,继续下贰遍巡回

【程序49】   标题:总括字符串中子串出现的次数。
import java.util.Scanner;
public class Demo49 {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.println("请输入主串:");
        String str1 = in.nextLine();
        System.out.println("请输入子串:");
        String str2 = in.nextLine();
        // 生成子串长度的N个字符串数组
        String[] sa = new String[str1.length() - str2.length() + 1];
        for (int i = 0; i < sa.length; i++) {
            sa[i] = str1.substring(i, i + str2.length());
        }
        int sum = 0;
        // 子串与N个拆开的子串比对
        for (int i = 0; i < sa.length; i++) {
            if (sa[i].equals(str2)) {
                // 成功配成对,计数器+1;
                sum++;
                // 因为不计算重叠的子串,所以跳过配成对以后的有的拆分子串
                i = i + str2.length();
            }
        }
        System.out.println("主串中国共产党饱含" + sum + "个字串");
    }
}

【程序50】    标题:有五个学生,各类学生有3门课的实绩,从键盘输入以上数据(满含学生号,姓名,三门课战绩),总括出平均战绩,把原来的数目和测算出的平分分数存放在磁盘文import java.io.File;
import java.io.FileWriter;
import java.util.Scanner;
class Student {
    private int number = 0;
    private String name = "";
    private double[] a = new double[3];
    public double getAve() {
        return (a[0] + a[1] + a[2]) / 3;
    }
    public Student(int number, String name, double[] a) {
        super();
        this.number = number;
        this.name = name;
        this.a = a;
    }
    @Override
    public String toString() {
        return "学号:" + this.number + "t姓名:" + this.name + "rn各科成绩:rn" + a[0] + "t" + a[1] + "t" + a[2] + "rn平均战表:rn"
                + this.getAve();
    }
}
public class Demo50 {
    public static Student input() {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入学号:");
        int num = s.nextInt();
        System.out.println("请输入人名:");
        String name = s.next();
        System.out.println("请分别输入3门大成:");
        double[] a = new double[3];
        for (int i = 0; i < 3; i++) {
            a[i] = s.nextDouble();
        }
        return new Student(num, name, a);
    }
    public static void main(String[] args) throws Exception {
        Student[] st = new Student[2];
        for (int i = 0; i < st.length; i++) {
            st[i] = input();
        }
        File f = new File("d:" + File.separator + "123.txt");
        FileWriter output = new FileWriter(f);
        for (int i = 0; i < st.length; i++) {
            output.write(st[i].toString() + "rn");
            output.write("rn");
        }
        output.close();
    }
}

for (int i = 1; i < 10;i++) {

【程序50】    标题:有七个学生,各个学员有3门课的成绩,从键盘输入以上数量(包含学生号,姓名,三门课成绩),计算出平均成绩,把本来的数码和计量出的平均分数存放在磁盘文import java.io.File;
import java.io.FileWriter;
import java.util.Scanner;
class Student {
    private int number = 0;
    private String name = "";
    private double[] a = new double[3];
    public double getAve() {
        return (a[0] + a[1] + a[2]) / 3;
    }
    public Student(int number, String name, double[] a) {
        super();
        this.number = number;
        this.name = name;
        this.a = a;
    }
    @Override
    public String toString() {
        return "学号:" + this.number + "t姓名:" + this.name + "rn各科战表:rn" + a[0] + "t" + a[1] + "t" + a[2] + "rn平均战绩:rn"
                + this.getAve();
    }
}
public class Demo50 {
    public static Student input() {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入学号:");
        int num = s.nextInt();
        System.out.println("请输入人名:");
        String name = s.next();
        System.out.println("请分别输入3门成绩:");
        double[] a = new double[3];
        for (int i = 0; i < 3; i++) {
            a[i] = s.nextDouble();
        }
        return new Student(num, name, a);
    }
    public static void main(String[] args) throws Exception {
        Student[] st = new Student[2];
        for (int i = 0; i < st.length; i++) {
            st[i] = input();
        }
        File f = new File("d:" + File.separator + "123.txt");
        FileWriter output = new FileWriter(f);
        for (int i = 0; i < st.length; i++) {
            output.write(st[i].toString() + "rn");
            output.write("rn");
        }
        output.close();
    }
}

TAG标签:
版权声明:本文由必威发布于必威-编程,转载请注明出处:从出生后第3个月起每个月都生一对兔子,小兔子