zoukankan      html  css  js  c++  java
  • java50个小程序

    package thing;

    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.sql.Date;
    import java.text.SimpleDateFormat;
    import java.util.Scanner;

    import javax.swing.text.StyledEditorKit.ForegroundAction;

    public class TestPractice {
    public static void main(String[] args) {
    /*//题目1:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
    //假如兔子都不死,问每个月的兔子总数为多少?    
    //这是一个菲波拉契数列问题
    int f1=1,f2=1,f3=1;
    for(int i=1;i<24;i++){
    if(i==1||i==2){
    System.out.println("第"+i+"个月的兔子总数为"+f3+"对");
    }else{
    int temp=f2;
    f2=f1+f2;
    f1=temp;
    System.out.println("第"+i+"个月的兔子总数为"+f2+"对");
    }
    }*/

    //题目2:判断101-200之间有多少个素数,并输出所有素数。  
    //程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
    // 则表明此数不是素数,反之是素数。
    /*int count=0;
    for(int i=100;i<200;i++){
    if(isPrime(i)){
    System.out.println(i);
    count++;
    }
    }

    System.out.println(count);
    public static boolean isPrime(int n){
    for(int j=2;j<=Math.sqrt(n);j++){
    if(n%j==0){
    return false;
    }
    }
    return true;
    }*/

    //题目3:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。
    //例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
    /*int o,p,q;
    for(int i=100;i<999;i++){
    o=i/100;
    p=i%100/10;
    q=i%10;
    if(o*o*o+p*p*p+q*q*q==i){
    System.out.println(i);
    }
    }*/

    /*int N=5;
    for (int i = 3; i <= 5; i++) {
    int a[] = new int[N];
    int num = (int) Math.pow(10, i - 1) + 1;
    System.out.print(i + "位的水仙花数有: ");
    while (num <= Math.pow(10, i)) {
    int sum = 0;
    for (int j = 0; j < i; j++)
    a[j] = (int) (num / Math.pow(10, j) % 10);
    for (int j = 0; j < i; j++) {
    sum = sum + (int) Math.pow(a[j], i);
    }
    if (num == sum) {
    System.out.print(num + " ");
    }
    num++;
    }
    System.out.print(" ");
    }*/
    //题目4:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。    
    // 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:   
    //   (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。    
    // (2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。    
    // (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
    /*int n=90,m=2;
    System.out.print(n+"=");
    while(m<=n){
    if(m==n){
    System.out.println(m);
    break;
    }else if
    (n%m==0){
    System.out.print(m+"*");
    n=n/m;


    }else {
    m++;
    }
    }*/
    //题目5:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
    /*char grade;
    int m=45;
    //grade=m>=90?'A':(m<60?'c':'b');
    grade=m>=90?'A':m>=60?'B':'c';
    System.err.println(grade);*/

    //题目6:输入两个正整数m和n,求其最大公约数和最小公倍数。    
    /**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,
    * 取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,
    * 最小公倍数为两数之积除以最大公约数。* /
    */
    /*int m=18,n=6;
    int d=deff(m,n);

    int f=m*n/d;
    System.out.println("最大公约数"+d);
    System.out.println("最小公倍数"+f);

    private static int deff(int m, int n) {
    if(m<n){
    int temp=m;
    n=m;
    m=temp;
    }
    while(n!=0){
    if(m==n){
    return m;
    }else{
    int k=m%n;
    m=n;
    n=k;
    }
    }
    return m;
    }*/
    //题目7:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
    /*Scanner scanner=new Scanner(System.in);
    System.out.println("请输入一串字符:");
    String line=scanner.nextLine();
    int digital=0;
    int character=0;
    int blank=0;
    int other=0;
    char[] ch=null;
    ch=line.toCharArray();
    for(int i=0;i<ch.length;i++){
    if(ch[i]>='0' && ch[i]<='9'){
    digital++;
    }
    else if((ch[i]>='a' && ch[i]<='z')||(ch[i]>='A' && ch[i]<='Z')){
    character++;
    }else if(ch[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个数相加),几个数相加有键盘控制
    /*Scanner scanner=new Scanner(System.in);
    System.out.println("请输入一个数字:");
    int a=scanner.nextInt();
    System.out.println("请输入几个数字相加:");
    int m=scanner.nextInt();*/
    //int a=x,m=5;
    /*System.out.print("s=");
    for(int i=0;i<m;i++){
    for(int j=0;j<=i;j++){
    System.out.print(a);
    }
    if(i<m-1){
    System.out.print("+");
    }
    }*/
    /*long s=0,b=0,sum=0;
    int i=0;
    while(i<m){
    b=b+a;
    sum=sum+a;
    a=a*10;
    ++i;
    }
    System.out.print(sum);*/

    //题目9:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 
    //    找出1000以内的所有完数。
    /*for(int i=1;i<1000;i++){
    int t=0;
    for(int j=1;j<=i/2;j++){
    if(i%j==0){
    t=t+j;
    }
    }
    if(t==i){
    System.out.print(t+" ");
    }
    }*/

    //题目10:一球从100米高度自由落下,每次落地后反跳回原高度的一半;
    //再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
    /*int k=1;
    double t=100;
    double n=0.5;
    double sum=0;
    double sum2=0;
    int f=5;
    double y=0;
    for(int i=1;i<=f;i++){
    if(i==1){
    sum=100;
    }else{
    while(k<f){
    t= n*t;
    sum2=sum2+t;
    k++;
    }

    }

    }
    System.out.println(sum+sum2);*/
    /*double s=100,h=100;
    for(int i=1;i<2;i++){
    s=s+h;
    h=0.5*h;
    }
    System.out.println(s);
    System.out.println(h);*/
    //题目11:有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
    /*int count=0;
    for(int x=1;x<5;x++){
    for(int y=1;y<5;y++){
    for(int z=1;z<5;z++){
    if(x!=y && y!=z && x!=z){
    System.out.println(100*x+10*y+z);
    count++;
    }
    }
    }
    }
    System.out.println(count);*/
    //题目12:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,
    //低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;
    //40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,
    //超过100万元的部分按1%提成,从键盘输入当月利润,求应发放奖金总数?
    /*Scanner scanner=new Scanner(System.in);
    System.out.println("请输入当月利润:");
    int s=scanner.nextInt();
    double d=0;
    if(s<10){
    d=0.1*s;
    }else if(10<=s && s<20){
    d=(s-10)*0.075+10*0.1;
    }else if(20<=s && s<40){
    d=(s-20)*0.05+0.1*10+0.075*10;
    }else if(40<=s && s<60){
    d=(s-40)*0.03+20*0.05+0.1*10+0.075*10;
    }else if(60<=s && s<100){
    d=(s-60)*0.015+40*0.03+20*0.05+0.1*10+0.075*10;
    }else{
    d=0.01*(s-100)+40*0.015+40*0.03+20*0.05+0.1*10+0.075*10;
    }

    System.out.println(d);*/
    //题目13:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
    /*int x ,y,z;
    for( x=1;x<2000000;x++){
    if(Math.sqrt(x+100)%1==0){
    if(Math.sqrt(x+268)%1==0){
    System.out.println(x);
    }
    }
    }*/
    //题目14:输入某年某月某日,判断这一天是这一年的第几天?(2015-10-14)
    /*SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
    String date=sf.format(new java.util.Date());
    String[] y=date.split("-");
    int a=Integer.parseInt(y[0]),b=Integer.parseInt(y[1]),c=Integer.parseInt(y[2]);
    int sum=0;
    for(int i=0;i<b-1;i++){
    if((a%4==0 && a%100!=0)|| a%400==0){
    int[] t={31,29,31,30,31,30,31,31,30,31,30,31};
    sum=sum+t[i];
    }else{
    int[] t={31,28,31,30,31,30,31,31,30,31,30,31};
    sum=sum+t[i];
    }
    }
    System.out.println("是第"+(sum+c)+"天");*/
    //题目15:输入三个整数x,y,z,请把这三个数由小到大输出。
    /*Scanner scanner=new Scanner(System.in);
    System.out.print("请输入三个整数:"+" ");
    int a=scanner.nextInt();
    int b=scanner.nextInt();
    int c=scanner.nextInt();*/
    /*if(a<b && a<c){
    if(b<c){
    System.out.println(a+" "+b+" "+c);
    }else{
    System.out.println(a+" "+c+" "+b);
    }
    }else if(b<a && b<c){
    if(a<c){
    System.out.println(b+" "+a+" "+c);
    }else{
    System.out.println(b+" "+c+" "+a);
    }
    }else{
    if(a<b){
    System.out.println(c+" "+a+" "+b);
    }else{
    System.out.println(c+" "+b+" "+a);
    }
    }*/
    /*if(a>b){
    int temp=a;
    a=b;
    b=temp;
    }
    if(a>c){
    int temp=a;
    a=c;
    c=temp;
    }
    if(b>c){
    int temp=b;
    b=c;
    c=temp;
    }
    System.out.println(a+" "+b+" "+c);*/

    //题目16:输出9*9口诀

    /*for(int i=1;i<=9;i++){
    for(int j=1;j<=i;j++){
    System.out.print(j+"*"+i+"="+i*j+" ");
    if(j*i<10){System.out.print(" ");}
    }
    System.out.println();
    }*/

    //题目17:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
    //     第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下  
    //   的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。  
    /*int sum=1;
    for(int i=10;i>0;i--){
    sum=2*sum+2;
    }
    System.err.println(sum);*/
    //题目18:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。
    //已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
    /*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' || n[j]=='z')){
    continue;
    }else if(m[i]=='b' && (n[j]=='y' || n[j]=='z')){
    continue;
    }else{
    System.out.println(m[i]+" vs "+n[j]);
    }
    }
    }
    static char[] m={'a','b','c'};
    static char[] n={'x','y','z'};*/

    //题目19:打印出如下图案(菱形)2n-1
    /*int n=9;
    for(int i=1;i<=(n+1)/2;i++){
    for(int j=(n+1)/2;j>i;j--){
    System.out.print(" ");
    }
    for(int t=1;t<=2*i-1;t++){
    System.out.print("*");
    }

    System.out.println();
    }


    for(int i=(n-1)/2;i>0;i--){
    for(int j=0;j<=(n-1)/2-i;j++){
    System.out.print(" ");
    }
    for(int t=1;t<=2*i-1;t++){
    System.out.print("*");
    }
    System.out.println();
    }*/
    //题目20:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...
    //求出这个数列的前20项之和
    /*double sum=0;
    int x=2,y=1;
    for(int i=1;i<=20;i++){
    sum=sum+(double)x/y;
    int t=y;
    y=x;
    x=y+t;
    }
    System.out.println(sum);*/

    //题目21:求1+2!+3!+...+20!的和
    /*int m=0;
    int fac=1;
    for(int i=1;i<=20;i++){
    fac=fac*i;
    m+=fac;
    }
    System.out.println(m);*/
    /*int m=1;
    for(int i=1;i<=20;i++){
    m=m*i;
    }
    System.out.println(m);*/
    //题目22:利用递归方法求5!。 
    /*int m=1;
    for(int i=1;i<=5;i++){
    m=m*i;
    }*/
    /*frc fr=new frc();
    System.out.println(fr.frc(4));
    public long frc(int n) {
    long d=0;

    if(n==1){
    d=1;
    }else{
    d=n*frc((n-1));
    System.out.println(d);
    }
    return d;
    }*/
    //题目23:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。
    //问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
    /*int x=10;
    for(int i=1;i<5;i++){
    x=x+2;
    }

    System.out.println(x);*/
    //题目24:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。    
    //使用了长整型最多输入18位 
    /*int a=12345;
    String s=a+"";
    System.out.println(s.length());
    for(int i=s.length();i>0;i--){
    System.out.println(s.substring(i-1, i));
    }*/
    /*Scanner scanner=new Scanner(System.in);
    System.out.println("请输入一个正整数:");
    Long long1=scanner.nextLong();
    String string=long1.toString();
    char[] c=string.toCharArray();
    int j=c.length;
    for(int i=j;i>0;i--){
    System.out.println(c[i-1]);
    }
    */
    //题目25:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
    /*Scanner scanner=new Scanner(System.in);
    int n;
    do {
    System.out.println("请输入一个五位正整数:");
    n=scanner.nextInt();

    } while (n<10000 || n>99999);
    boolean b=isNum(n);
    if(b){
    System.out.println("Y");
    }else{
    System.out.println("N");
    }

    }
    public static boolean isNum(int n){
    boolean b=false;
    int x,y,z,p,q;
    x=n/10000%10;
    y=n/1000%10;
    z=n/100%10;
    p=n/10%10;
    q=n%10;
    if(x==q && p==y){
    b=true;
    }
    return b;*/

    /*Scanner scanner=new Scanner(System.in);
    int n;
    do {
    System.out.println("请输入一个五位正整数:");
    n=scanner.nextInt();

    } while (n<10000 || n>99999);
    String string=String.valueOf(n);
    char[] ch=string.toCharArray();
    if(ch[0]==ch[4] &&ch[1]==ch[3]){
    System.out.println("Y");
    }else{
    System.out.println("N");
    }*/

    /*Scanner scanner=new Scanner(System.in);
    int n;
    do {
    System.out.println("请输入一个奇位正整数:");
    n=scanner.nextInt();

    } while (String.valueOf(n).length()%2==0);
    String string=String.valueOf(n);
    char[] ch=string.toCharArray();
    int m=ch.length;
    boolean b=true;
    for(int i=0;i<m/2;i++){
    if(ch[i]!=ch[m-i-1]){
    b=false;
    }
    }
    if(b){
    System.out.println("Y");
    }
    else {
    System.out.println("N");
    }*/
    //题目26:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续   判断第二个字母
    //Monday Tuesday Wednesday Thursday Friday Saturday Sunday
    /*String week="sunday";
    char[] ch=week.toCharArray();
    if(ch[0]=='m'){
    System.out.println("星期一");
    }else if(ch[0]=='w'){
    System.out.println("星期三");
    }else if(ch[0]=='f'){
    System.out.println("星期五");
    }else if(ch[0]=='t'){
    if(ch[1]=='u'){
    System.out.println("星期二");
    }else {
    System.out.println("星期四");
    }
    }else if(ch[0]=='s'){
    if(ch[1]=='a'){
    System.out.println("星期六");
    }else {
    System.out.println("星期日");
    }
    }*/
    //题目27:求100之内的素数    
    //使用除sqrt(n)的方法求出的素数不包括2和3
    /*int count=0;
    for(int i=2;i<=100;i++){
    int fac=1;
    for(int j=1;j<=i;j++){
    if(i%j==0){
    fac=fac*j;
    }
    }
    if(i==fac){
    System.out.println(i);
    count++;
    }
    }

    System.out.println(count);*/
    //题目28:对10个数进行排序
    /*int[] a={12,45,78,65,48,45,98,65,25,87};
    for(int i=0;i<10;i++){
    for(int j=i+1;j<10;j++){
    if(a[i]<a[j]){
    int temp = a[i];
    a[i]=a[j];
    a[j]=temp;
    }
    }
    }
    for(int i=0;i<10;i++){
    System.out.print(a[i]+" ");
    }*/

    //题目29:求一个3*3矩阵对角线元素之和
    /*int sum=0;
    int[][] a={{1,2,3},{4,5,6},{7,8,9}};
    for(int i=0;i<3;i++){
    for(int j=0;j<3;j++){
    if(i==j || i+j==2){
    sum=sum+a[i][j];
    }
    }
    }
    System.out.println(sum);*/
    //题目30:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。     
    //此程序不好,没有使用折半查找插入
    /*int[] a={12,45,78,65,48,45,98,65,25,87};
    int h=a.length+1;
    int[] b= new int[h];
    for (int i = 0; i < a.length; i++) {
    for (int j = i+1; j < a.length; j++) {
    if (a[i]>a[j]) {
    int temp = a[i];
    a[i]=a[j];
    a[j]=temp;
    }
    }
    }*/
    /*for(int i=0;i<10;i++){
    System.out.print(a[i]+" ");
    }*/
    /*int m=88;
    if(m>a[h-2]){
    b[h-1]=m;
    for(int i=0;i<h-1;i++){
    b[i]=a[i];
    }
    }else{
    if(m<a[0]){
    b[0]=m;
    for(int i=0;i<h-1;i++){
    b[i+1]=a[i];
    }
    }else{
    for(int i=0;i<a.length;i++){
    if(m>a[i]){
    b[i]=a[i];
    }else {
    b[i]=m;
    break;
    }
    for(int j=i+1;j<h;j++){
    b[j]=a[j-1];
    }
    }
    }
    }*/

    /*
    for(int i=0;i<b.length-1;i++){
    System.out.print(a[i]+" ");
    }*/
    //java折半查找
    /*int[] a={12,15,28,35,48,55,68,75,85,97};
    int x=src(a,97);
    System.out.println(a[x]);
    private static int src(int[] a, int n) {
    int high=a.length-1;
    int low=0;
    while(low<=high){
    int middle=(low+high)/2;
    if(a[middle]==n){
    return middle;
    }
    else if(a[middle]>n){
    high=middle-1;
    }else {
    low=middle+1;
    }
    }
    return -1;
    }*/
    //题目:将一个数组逆序输出。
    /*int[] a={12,15,28,35,48,55,68,75,85,97};
    int[] b=new int[10];
    for(int i=0;i<b.length;i++){
    b[i]=a[b.length-i-1];
    }
    for(int i=0;i<b.length;i++){
    System.out.print(b[i]+" ");
    }*/
    /*int[] a={12,15,28,35,48,55,68,75,85,97};
    for(int i=0;i<=a.length/2;i++){
    int temp=a[i];
    a[i]=a[a.length-i-1];
    a[a.length-i-1]=temp;
    }
    for(int i=0;i<a.length;i++){
    System.out.print(a[i]+" ");
    }*/
    //题目:取一个整数a从右端开始的4~7位。
    //相当于长度的倒数h-3,h-7
    /*int a=674987946;
    String string=String.valueOf(a);
    System.out.println(string.substring(string.length()-7, string.length()-3));*/
    //题目:打印出杨辉三角形(要求打印出10行如下图)
    /*int[][] a=new int[10][10];
    for(int i=0;i<10;i++){
    a[i][i]=1;
    a[i][0]=1;
    }
    for(int i=2;i<10;i++){
    for(int j=1;j<i;j++){
    a[i][j]=a[i-1][j-1]+a[i-1][j];
    }
    }
    for(int i=0;i<10;i++){
    for(int k=0;k<2*(10-i)-1;k++){
    System.out.print(" ");
    }
    for(int j=0;j<=i;j++){
    System.out.print(a[i][j]+" ");
    }
    System.out.println();
    }*/

    //题目34:输入3个数a,b,c,按大小顺序输出。
    /*Scanner s=new Scanner(System.in);
    System.out.println("请输入三个数字:");
    int a=s.nextInt();
    int b=s.nextInt();
    int c=s.nextInt();
    if(a>b){
    int temp=a;
    a=b;
    b=temp;
    }
    if(a>c){
    int temp=c;
    c=a;
    a=temp;
    }
    if(b>c){
    int temp=c;
    c=b;
    b=temp;
    }
    System.out.println(a+" "+b+" "+c);*/
    //题目35:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
    /*Scanner s=new Scanner(System.in);
    int n=8;
    int[] a=new int[8];
    System.out.println("请输入8个整数:");
    for(int i=0;i<n;i++){
    a[i]=s.nextInt();
    }
    System.out.println("您输入的数组为:");
    for(int i=0;i<n;i++){
    System.out.print(a[i]+" ");
    }

    int idx1=0;
    int idx2=0;
    int max=a[0];
    int min=a[0];
    for(int i=0;i<n;i++){
    if(a[i]>max){
    max=a[i];
    idx1=i;
    }
    if(a[i]<min){
    min=a[i];
    idx2=i;
    }
    }
    if(idx1!=0){
    int temp=a[0];
    a[0]=a[idx1];
    a[idx1]=temp;
    }
    if(idx2!=n-1){
    int temp=a[n-1];
    a[n-1]=a[idx2];
    a[idx2]=temp;
    }
    System.out.println("交换后的数组为:");

    for(int i=0;i<n;i++){
    System.out.print(a[i]+" ");
    }*/
    //题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
    /*int[] a={1,2,3,4,5,6,7,8};
    int m=a.length;
    int n=2;
    int[] b=new int[n];
    for(int i=0;i<b.length;i++){
    b[i]=a[i];
    }
    for(int i=0;i<m;i++){
    if(i<m-n){
    a[i]=a[i+n];
    }else{
    a[i]=b[i+n-m];
    }
    }
    for(int i=0;i<m;i++){
    System.out.print(a[i]+" ");
    }*/
    //题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,
    //问最后留下的是原来第几号的那位。
    /*int[] a={1,2,3,4};
    boolean[] b=new boolean[a.length];
    for(int i=0;i<b.length;i++){
    b[i]=true;
    }
    int left=a.length;
    int index=0;
    int countNum=0;
    while(left>1){
    if(b[index]==true){
    countNum++;
    if(countNum==3){
    countNum=0;
    b[index]=false;
    left--;
    }
    }
    index++;
    if(index==left){
    index=0;
    }
    }

    for(int i=0;i<a.length;i++){
    if(b[i]==true){
    System.out.println(i+1);
    }
    }*/

    //题目38:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
    /*Scanner s=new Scanner(System.in);
    System.out.println("请输入一个字符串:");
    String string=s.nextLine();
    System.err.println(string.length());*/
    //题目39:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)    
    //没有利用指针函数
    /*int n=5;
    double sum=0;
    if(n%2==0){
    for(int i=0;i<n/2;i++){
    sum+=(double)1/(2*i+2);
    }
    }else{
    int m=3/2;
    for(int i=0;i<n/2+1;i++){
    sum=sum+(double)1/(2*i+1);
    }
    }
    System.out.println(sum);
    */
    //题目40:字符串排序。
    //题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
    //第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,
    //问海滩上原来最少有多少个桃子?
    /*int sum=1;
    for(int i=1;i<=5;i++){
    sum=sum*5+1;
    }
    System.out.println(sum);*/
    //题目:809*??=800*??+9*??+1    其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。
    //求??代表的两位数,及809*??后的结果。    
    //题目错了!809x=800x+9x+1 这样的方程无解。去掉那个1就有解了。

    //题目43:求0—7所能组成的奇数个数。    
    //组成1位数是4个。 
    //组成2位数是7*4个。 
    //组成3位数是7*8*4个。 
    //组成4位数是7*8*8*4个。
    /*int sum=4;
    int sum2=4*7;
    System.out.println("组成1位数是 "+sum+" 个");
    sum=sum*7;
    System.out.println("组成2位数是 "+sum+" 个");
    sum=sum*8;
    for(int i=3;i<9;i++){
    sum2=sum2*8;
    System.out.println("组成di"+i+"位数是 "+sum2+" 个");
    }*/
    //题目44:一个偶数总能表示为两个素数之和。    
    //由于用除sqrt(n)的方法求出的素数不包括2和3, 
    //因此在判断是否是素数程序中人为添加了一个3

    //题目45:判断一个素数能被几个9整除    
    //题目错了吧?能被9整除的就不是素数了!所以改成整数了。
    /*int a=18;
    int count=0;
    for(int i=1;i<8;i++){
    if(a%9==0){
    a=a/9;
    count++;
    }
    }
    System.out.println(count);*/
    //题目46:两个字符串连接程序 
    /*String S1="aaaa";
    String S2="bbbb";
    String s3=S1+S2;
    System.out.println(s3);*/

    //题目47:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
    /*int[] a={1,2,4,6,8};
    for(int i=0;i<a.length;i++){
    for(int j=0;j<a[i];j++){
    System.out.print("*");
    }
    System.out.println();
    }*/
    //题目48:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,
    //然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
    /*int[] a={5,9,2,0};
    int[] b=new int[a.length];
    for(int i=0;i<b.length;i++){
    b[i]=a[i]+5;
    b[i]=b[i]%10;
    }
    for(int i=0;i<=1;i++){
    int m=b[i];
    b[i]=b[3-i];
    b[3-i]=m;
    }
    for(int i=0;i<a.length;i++){
    System.out.println(b[i]);
    }*/
    //题目49:计算字符串中子串出现的次数
    /*String m="abaabasabab";
    String n="ab";
    int count=0;
    char[] ss=String.valueOf(m).toCharArray();
    char[] ns=String.valueOf(n).toCharArray();
    for(int i=0;i<ss.length;i++){
    if(ss[i]==ns[0]){
    if(ss[i+1]==ns[1]){
    count++;
    }
    }
    }
    System.out.println(count);*/
    int count=0;
    String m="aaaaabaabasabab";
    String n="aaa";
    for(int i=0;i<=m.length()-n.length();i++){
    if(m.substring(i, n.length()+i).equals(n)){
    count++;
    }
    }
    System.out.println(count);
    //题目50:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,
    //把原有的数据和计算出的平均分数存放在磁盘文件 "stud "中
    /*Scanner scanner=new Scanner(System.in);
    String[][] ss=new String[5][6];
    System.out.println("请输入学生个数:");
    int n=scanner.nextInt();
    for(int i=1;i<6;i++){
    System.out.print(" 请输入第"+i+"个学生的学号: ");
    ss[i-1][0]=scanner.nextLine();
    System.out.print(" 请输入第"+i+"个学生的姓名 : ");
    ss[i-1][1]=scanner.nextLine();
    for(int j=1;j<4;j++){
    System.out.print(" 请输入第"+j+"个成绩: ");
    ss[i-1][j+1]=scanner.nextLine();
    }
    System.out.println();
    }
    float avg;
    int sum = 0;
    for(int i=0;i<5;i++){
    for(int j=2;j<5;j++){
    sum+=Integer.valueOf(ss[i][j]);
    }
    avg=(float)sum/3;
    ss[i][5]=String.valueOf(avg);
    sum=0;
    }

    for(int i=0;i<5;i++){
    for(int j=0;j<6;j++){
    System.out.print(ss[i][j]+" ");
    }
    System.out.println();
    }
    String sssString;
    try {
    File file=new File("d:\stud.txt");
    if(file.exists()){
    System.out.println("文件已存在!");
    }else{
    System.out.println("正在创建……");
    file.createNewFile();
    }
    BufferedWriter output=new BufferedWriter(new FileWriter(file));
    for(int i=0;i<5;i++){
    for(int j=0;j<6;j++){
    sssString=ss[i][j]+" ";
    output.write(sssString);
    }
    }
    output.close();
    System.out.println("OK!");
    } catch (Exception e) {
    e.printStackTrace();
    }
    float[] sm=new float[3];
    float count=0;
    for(int i=0;i<3;i++){
    for(int j=0;j<5;j++){
    for(int q=2;q<5;q++){
    count+=Integer.valueOf(ss[j][q]);
    }
    }
    sm[i]=count/5;
    count=0;
    }*/
    }
    }

  • 相关阅读:
    python自动化测试,将测试结果的报告写入本地中(HTMLTestRunner)
    谷歌+selenuim ide导出python代码 详细代码
    谷歌+selenium插件的安装
    C# List转DataTable(支持匿名类型)
    喵的Unity游戏开发之路
    喵的Unity游戏开发之路
    喵的Unity游戏开发之路
    喵的Unity游戏开发之路
    喵的Unity游戏开发之路
    Unity3D游戏开发入门引导:Unity3D收费方案和版本、下载地址、安装教程
  • 原文地址:https://www.cnblogs.com/zszitman/p/4891733.html
Copyright © 2011-2022 走看看