• java 收集的一些算法 (2)


     /*【程序14】
        *题目:输入某年某月某日,判断这一天是这一年的第几天?

       */

       import java.util.*;

       public class Test14
       {
         public static void main(String[] args)
         {
           int count=0;
           Scanner in=new Scanner(System.in);
           System.out.print("请输入年:");
           int year=in.nextInt();
           System.out.print("请输入月:");
           int month=in.nextInt();
           System.out.print("请输入日:");
           int day=in.nextInt();
           switch(month)
           {
             case 12: count += 30;
             case 11: count += 31;
             case 10: count += 30;
             case 9: count += 31;
             case 8: count += 30;
             case 7: count += 31;
             case 6: count += 31;
             case 5: count += 30;
             case 4: count += 31;
             case 3: count += 28;
             case 2: count += 31;
             case 1: count += 0;
           }
           count += day;
           if (year%4==0&&year%100!=0&&month>=3)
           {
              count += 1;
           }
           System.out.print(year+"-"+month+"-"+day+"是一年中的第"+count+"天");
         }
       }

       /*【程序15】
        *题目:输入三个整数x,y,z,请把这三个数由小到大输出。

       */

       import java.util.*;

       public class Test15
       {

        public static void  main(String[] args)
         {
        
         Scanner in = new Scanner(System.in);
         System.out.print("\n请输入第一个数:");
         int x = in.nextInt();
         System.out.print("\n请输入第二个数:");
         int y = in.nextInt();
         System.out.print("\n请输入第三个数:");
         int z = in.nextInt();
        
         if(x>=y && x>=z)
         {
          System.out.print(x);
          if(y>=z)
          {
           System.out.print(y);
           System.out.print(z);
          }
          else if(z>=y)
          {
           System.out.print(z);
           System.out.print(y);
          }
         }
         else if(y>=x && y>=z)
         {
          System.out.print(y);
          if(x>=z)
          {
           System.out.print(x);
           System.out.print(z);
          }
          else if(z>=x){
           System.out.print(z);
           System.out.print(x);
          }
         }
         else if(z>=x && z>=y)
         {
          System.out.print(z);
          if(x>=y)
          {
           System.out.print(x);
           System.out.print(y);
          }
          else if(y>=x)
          {
           System.out.print(y);
           System.out.print(x);
          }
         }
        }
       }

       /*【程序16】
        *题目:输出9*9口诀。
        *1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

        */

       

       public class Test16
       {
           public static void main(String[] args)
           {
             for(int i=1;i<10;i++)
              {
                for(int j=1;j<=i;j++)
                {
                  System.out.print(j+"*"+i+"="+i*j+"\t");       
                }
                System.out.println();
              }
           }
       }
       /*【程序17】
        *题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩
        *下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时见只  剩下一个桃子了。求第一天共摘了多少。
        *1.程序分析:采取逆向思维的方法,从后往前推断。

       */

       

       public class Test17
       {
          public static void main(String[] args)
          {
             int num=1;
             for(int i=1;i<10;i++)
             {
                num=(num+1)*2;
             }
             System.out.println("第一天共摘了"+num+"个苹果");
          }
       }
       /*题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向
       队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。*/

        public class Test18
       {
          public static void main(String[] args)
          {
             char[] arr1={'a','b','c'};
             char[] arr2={'x','y','z'}; 
             for(int i=0;i<arr1.length;i++)
              {
                 for(int j=0;j<arr2.length;j++)
                 {
                   if((arr1[i]=='a'&&arr2[j]=='x')||(arr1[i]=='c'&&arr2[j]=='x')||(arr1[i]=='c'&&arr2[j]=='z'))
                    {
                       continue;
                    }
                   System.out.println(arr1[i] + " vs " + arr2[j]);
                 }
              }  
          }
       }
        /*【程序19】
        题目:打印出如下图案(菱形)
            *
           ***
         ******
        ********
         ******
          ***
           *
        1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制
        行,第二层控制列。 */

        public class Test19
        {
           public static void main(String[] args)
           {
              //上半部分
              for(int i=0;i<4;i++)
                {
                  for(int j=0;j<4-i;j++)
                  {
                    System.out.print(" ");
                  }
                  for(int j=0;j<i+1;j++)
                  {
                    System.out.print('*');
                  }
                  System.out.println();
                }
              //中部以及下半部分
                for(int i=0;i<3;i++)
                {
                  for(int j=0;j<i;j++)
                  {
                    System.out.print(" ");
                  }
                  for(int j=0;j<5-(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 Test20
        {
           public static void main(String[] args)
           {
              int f1=1;
              int f2=2;
              int sum=0;
              int temp;
              for(int i=0;i<20;i++)
              {
                 sum=sum+f2/f1;
                 temp=f1;
                 f1=f2;
                 f2=f2+temp;
              }
              System.out.println(sum);
           }
        }

  • 相关阅读:
    Splay模板(bzoj 1588)
    PDD----配对堆
    [BZOJ4025] 二分图 LCT/(线段树分治+并查集)
    FFT模板 生成函数 原根 多项式求逆 多项式开根
    [BZOJ4566][Haoi2016]找相同字符 后缀自动机+dp
    [BZOJ1503] [NOI2004]郁闷的出纳员 splay
    [loj#2566][BZOJ5333] [Sdoi2018]荣誉称号 树形dp
    [BZOJ4824][Cqoi2017]老C的键盘 树形dp+组合数
    [BZOJ5305][Haoi2018]苹果树 组合数
    [BZOJ2669][cqoi2012]局部极小值 状压dp+容斥原理
  • 原文地址:https://www.cnblogs.com/lhxue/p/2985302.html
Copyright © 2020-2023  润新知