J2SE习题—基本语法2

来源:互联网 发布:淘宝上不错的美国代购 编辑:程序博客网 时间:2024/05/21 09:07

1.用1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,问共有几种兑换方案?每种方案各换多少枚?

2.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加,a这个数字是2),几个数相加,这个数字是几均由键盘输入

3.有1、2、3、4这4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

4.已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。

5.输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。

6.输入某年某月某日,判断这一天是这一年的第几天?

7.求任意2个日期之间相差的天数

import java.util.*;class Test2 {    public static void main(String[] args)     {        question_1();        System.out.println(question_2(2,3));        question_3();        question_4();        question_5(543210);        question_6(20170228);        question_7(20200101,20200301);//会识别闰年,60天    }    //1.用1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,问共有几种兑换方案?每种方案各换多少枚?    public static void question_1()    {        int total = 0;        int count = 0;        for (int x=0;x<=100 ;x++ )        {            for (int y=0;y<=100-x ;y++ )            {                total = 5*x + 2*y + 1*(100-x-y);                if (total == 150)                {                    //count自增必须放前面,即使有括号,放后面也会先输出后自增                    System.out.println("方案"+(++count)+":五分"+x+"枚,2分"+y+"枚,1分"+(100-x-y)+"枚。");                    break;                }            }        }        System.out.println("方案一共有"+count+"种");    }    //2.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加,a这个数字是2),几个数相加,这个数字是几均由键盘输入    public static double question_2(int num,int len)    {        double sum=0;        double js = 0;        for (int x=1;x<=len-1 ;x++ )        {            js = js + num * Math.pow(10,x);            sum = sum + js;        }        return sum;    }    //3.有1、2、3、4这4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?    public static void question_3()    {        System.out.print("一共有"+(4*3*2)+"种组合:");        for (int i=1;i<=4 ;i++ )        {            for (int m = 1;m<=4 ;m++ )            {                if(i==m)                    continue;                for (int n = 1;n<=4 ;n++ )                {                    if(i==n || m==n)                        continue;                    System.out.print(i*100+m*10+n+",");                }            }        }        System.out.println();    }    //4.已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。    public static void question_4()    {        System.out.print("满足条件的a,b,c所有组合:");        for (int a=3; a<=6; a++ )        {            for (int c=12-a;c+a<=13&c<10;c++)            {                int b2 = 1333-101*(a+c);                if (b2%20==0)                {                    System.out.print(100*a+b2/2+c+",");                    System.out.print(100*c+b2/2+a+",");                }            }        }    }    //5.输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。     public static void question_5(int n)    {        StringBuilder sb= new StringBuilder();        int count=1;        if(n<=0)            System.out.println("哥们,请输入正整数");        System.out.println("正序输出:"+n);        while(n/10!=0)        {            int a = n%10;            sb.append(a);            n=n/10;            count++;        }        sb.append(n);        System.out.println("这是一个"+count+"位数。");        System.out.println("正序输出:"+sb.reverse().toString());        System.out.println("这是一个"+sb.reverse().toString());    }    //6.输入某年某月某日,判断这一天是这一年的第几天?    public static void question_6(int n)    {        int year = n/10000;        int month = n%10000/100-1;//month默认从0开始,即1月为0月        int day = n%100;        GregorianCalendar cal= new GregorianCalendar(year,month,day);        GregorianCalendar cal2= new GregorianCalendar(year,0,0);        long time = (cal.getTimeInMillis()-cal2.getTimeInMillis())/(24*60*60*1000) +1;//因为减去了年初一天        System.out.println("这一天是这一年的第"+time+"天");    }    //7.求任意2个日期之间相差的天数//不考虑前后    public static void question_7(int n,int m)    {        GregorianCalendar cal= new GregorianCalendar(n/10000,n%10000/100-1,n%100-1);        GregorianCalendar cal2= new GregorianCalendar(m/10000,m%10000/100-1,m%100-1);        long time = (cal.getTimeInMillis()-cal2.getTimeInMillis())/(24*60*60*1000);        System.out.println("2个日期之间相差"+time+"天");    }}
0 0
原创粉丝点击