java基础一些简易算法题

来源:互联网 发布:天谕豪男捏脸数据 编辑:程序博客网 时间:2024/05/22 14:10

1.菱形问题

import java.util.*;
public class Dylxjava
{
    public static void main( String []args){
        int n=0;
        System.out.println("请输入菱形变长:");
        Scanner s = new Scanner(System.in);
        n = s.nextInt();
        for (int i=1;i<=n ; i++)
        {
            for (int k=1;k<=n-i ;k++ )
                System.out.print(" ");
            for (int j=1;j<=2*i-1 ;j++ )
                System.out.print("*");
            System.out.println();
        }
        for (int i=1;i<n ;i++ )
        {
            for (int k=1;k<=i ;k++ )
                System.out.print(" ");
            for (int j=1;j<2*(n-i) ;j++ )
                System.out.print("*");
            System.out.println();
        }
    
    }
}

2.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

import java.util.*;
public class Nb
{
    public static void main( String []args){
        int n=0;
        int m=0;
        int t=0;
        int a=0;
        System.out.println("请输入两个数字:");
        Scanner s = new Scanner(System.in);
        n=s.nextInt();
        m=s.nextInt();
        for (int i =1;i<=m ;i++ )
        {
            t=t*10+n;
            System.out.println(t);
            a+=t;

        }
        System.out.println(a);
    
    }
}

3,猴子吃桃的问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个   第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下   的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。   

.程序分析:采取逆向思维的方法,从后往前推断。

//运用递归
public class Taozi
{
    public static int total(int day){
        if (day==10){
            return 1;
        }
        else{
            return (total(day+1)+1)*2;
        }
    }
    public static void main( String []args){
        System.out.println(total(1));
    }
}

4,有一分数序列:2/13/25/38/513/821/13...求出这个数列的前20项之和。  

程序分析:请抓住分子与分母的变化规律。

public class Test20B
{
    public static void main( String []args){
        float fm=1;
        float fz=1;
        float temp=0;
        float sum=0;
        for (int i =1;i<=20 ;i++ )
        {
            temp=fm;
            fm=fz;
            fz=fz+temp;
            sum+=fz/fm;
            System.out.println(sum);
        }
        System.out.println("              "+sum);
    }
}. 

5,有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   

//兔子问题
public class Tuzi
{
    public static void main(String []args){
        int i=0;
        for (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);
        }
}

6 有n个人围成一圈,顺序排号。从第一个人开始报数(从13报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

import java.util.Scanner;

public class Test37
{
    public static void main( String []args){
        Scanner s  = new Scanner( System.in);
        int n = s.nextInt();
        boolean[] arr = new boolean[n];
        for (int i=0;i<arr.length; i++ )
        {
            arr[i]=true;
        }
        int leftCount = n;
        int countNum = 0;
        int index = 0;
        while (leftCount > 1)
        {
            if (arr[index] ==true){
                countNum++;
            if (countNum==3){
                countNum=0;
                arr[index] = false;
                leftCount--;
                }
            }
            index++;
            if (index==n){
            index=0;
            }
        }
    
        for (int i=0;i<n ;i++ )
        {
        if (arr[i]==true)
        
            System.out.println(i);
        
        }

    }
}

原创粉丝点击