JAVA 例子
- 格式:doc
- 大小:117.00 KB
- 文档页数:18
例2.4 求一个日期(年月日)对应的是星期几。
public class ChineseWeek{public static void main(String args[]){int year=2009, month=7, day=13;boolean leap = year%400==0 || year%100!=0 && year%4==0;int total = year-1980+(year-1980+3)/4; //求平(闰)年累计的总天数switch (month-1) //当年的累计天数{case 11: total+=30;case 10: total+=31;case 9: total+=30;case 8: total+=31;case 7: total+=31;case 6: total+=30;case 5: total+=31;case 4: total+=30;case 3: total+=31;case 2: total+= leap ? 29 : 28;case 1: total+=31;case 0: total+=day; //当月的天数}int week =1; //起始日1979-12-31是星期一week = (week+total) % 7; //求得星期几System.out.print(year+"年"+month+"月"+day+"日星期");switch (week){case 0: System.out.println("日"); break;case 1: System.out.println("一"); break;case 2: System.out.println("二"); break;case 3: System.out.println("三"); break;case 4: System.out.println("四"); break;case 5: System.out.println("五"); break;case 6: System.out.println("六"); break;}//2.5 字符串String str="日一二三四五六";System.out.println("星期"+str.substring(week, week+1));}}/*程序运行结果如下:2009年7月13日星期一星期一*///【例2.5】用while语句求累加和。
public class Sum_while{public static void main(String args[]){int i=1,n=10,s=0;while (i<=n){s += i;i++; //改变循环条件} //循环结束后,i=11,s=55System.out.println("s = "+s);System.out.println("i = "+i);i=1; s=0;while (i>=n) //循环体一次也不执行s += i++;System.out.println("s = "+s);System.out.println("i = "+i);i=0;n=10;s=0; //思考题1while (i<n){i++;s += i;}System.out.println("Sum = 1+...+"+n+" = "+s);i=1;n=8;s=0; //思考题2,显示计算公式System.out.print("Sum("+n+")= ");while (i<n){s += i;System.out.print(i+"+");i++;}System.out.println(i+" = "+(s+i));}}/*程序运行结果如下:s = 55i = 11s = 0i = 1Sum = 1+...+10 = 55Sum(8) = 1+2+3+4+5+6+7+8 = 36*//*程序说明:int i=1,n=10,s=0;while (i<=n) // 死循环s += i;*///【例2.6】用辗转相除法求两个整数的最大公因数。
public class Gcd{public static void main(String args[]){int a=91, b=49;// int a=26460, b=12375;while (b!=0){System.out.print("gcd("+a+","+b+")=");int tmp = a % b;a = b;b = tmp;}System.out.println("gcd("+a+","+b+")="+a);}}/*程序运行结果如下:gcd(91,49)=gcd(49,42)=gcd(42,7)=gcd(7,0)=7gcd(26460,12375)=gcd(12375,1710)=gcd(1710,405)=gcd(405,90)=gcd(90,45)=gcd(45,0)=45 *///【例2.7】计算Fibonacci序列。
public class Fibonacci{public static void main(String args[]){short i=0,j=1;do{System.out.print(" "+i+" "+j);i = (short)(i+j);j = (short)(i+j);} while (i>0); //short整数溢出时循环停止System.out.println();}}/*程序运行结果如下:0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 *///【例2.8】用for语句求累加和并显示计算公式。
public class Sum_for{public static void main(String args[]){int i=1,n=10,s=0;for (i=1; i<=n; i++) //循环控制变量递增变化s += i;System.out.println("Sum = 1+...+"+n+" = "+s);System.out.print("Sum("+n+") = "); //显示计算公式for (i=n,s=0; i>1; i--) //循环控制变量递减变化{s += i;System.out.print(i+"+");}System.out.println(i+" = "+(s+i));}}/*程序运行结果如下:Sum = 1+...+10 = 55Sum(10) = 10+9+8+7+6+5+4+3+2+1 = 55int n=10,s=0;for (int i=1,j=1; i<=n; i++,j++) //逗号用于分隔表达式s += i;System.out.println("Sum = 1+...+"+n+" = "+s);*///【例2.9】输出九九乘法表。
public class Mul99{public static void main(String args[]){int i,j,n=9;System.out.print(" * |");for (i=1; i<=n; i++) //输出第一行System.out.print(" "+i);System.out.print("\n-------|"); //输出一行分隔线for (i=1; i<=n; i++)System.out.print("----");System.out.println();for (i=1; i<=n; i++) //输出九行{System.out.print(" "+i+" |"); //输出每行的乘数for (j=1; j<=i; j++) //输出一行的若干乘积数// System.out.print(" "+i*j);System.out.print(String.format("%4d",i*j));System.out.println();}}}/*程序运行结果如下:* | 1 2 3 4 5 6 7 8 9-------|------------------------------------1 | 12 | 2 43 | 3 6 94 | 4 8 12 165 | 5 10 15 20 256 | 6 12 18 24 30 367 | 7 14 21 28 35 42 498 | 8 16 24 32 40 48 56 649 | 9 18 27 36 45 54 63 72 81*///【例2.10】用一维数组保存Fibonacci序列值。
public class Fib_array{public static void main(String args[]){int n=25,i;int fib[] = new int[n];fib[0]=0;fib[1]=1;for (i=2; i<n; i++)fib[i] = fib[i-1] + fib[i-2];for (i=0; i<fib.length; i++) //输出一维数组System.out.print(fib[i]+" ");System.out.println();}}/*程序运行结果如下:0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368*///【例2.12】输出指定范围内的素数。