2016年11月27日 星期日
設計abs函數可接收int、float、double型態三組,並傳回絕對值
package Method;
/*
* 設計abs函數可接收int、float、double型態三組,並傳回絕對值
*/
public class hw7_26 {
public static void main(String[] args) {
System.out.println("-6的絕對值="+abs(-6));
System.out.println("-3.5f的絕對值="+abs(-3.5f));
System.out.println("-2.12345的絕對值="+abs(-2.12345));
}
public static int abs(int x){ //Math.abs()===>求絕對值
return Math.abs(x);
}
public static double abs(double x){
return Math.abs(x);
}
public static float abs(float x){
return Math.abs(x);
}
}
使用遞迴方式計算(1*2)+(2*3)+....(n)*(n-1)的值
package Method;
/*
* 使用遞迴方式計算(1*2)+(2*3)+....(n)*(n-1)的值
* 必須設定當輸入<=0的數字時強制結束程式
*/
public class hw7_22 {
public static void main(String[] args) {
int num=10;
System.out.println("(1*2)+(2*3)+....(n)*(n-1)....+當n="+num+"的總和為"+sum(num));
}
public static int sum(int n){
if(n<=0){ //防止輸入負數
System.out.println("請輸入大於0的整數");
System.exit(-1);
}
if(n==1){
return 0; //sum(1)時為0
}
return ((n-1)*(n))+sum(n-1);
}
}
//STEP1:4*5+sum(4)
//STEP2:3*4+sum(3)
//STEP3:2*3+sum(2)
//STEP4:2*1+sum(1)
//STEP5:0+2
//STEP6:2+6
//STEP7:8+12
//STEP8:20+20
使用遞迴方式計算1+2+3+4+..n的值
package Method;
/*
* 使用遞迴方式計算1+2+3+4+..n的值
*/
public class hw7_21 {
public static void main(String[] args) {
int num=100;
System.out.println("1+2+3+....+"+num+"的總和為"+sum(num));
}
public static int sum(int n){
if(n==0){
return 0;
}
return n+sum(n-1);
}
}
假設有一繩子長3500公尺,每天剪去一半長度,請問需要花費幾天的時間才能使繩子長度短於3公尺?
public class hw5_14 {
public static void main(String[] args) {
int day=1; //天數
int length=3500; //繩子長度
while(true){ //while迴圈條件只要是true就可以一直執行
length=length/2;
if(length<3){
break; //必須加入break讓迴圈中斷
}
day++; //計算天數
}
System.out.println("總共要花"+day+"天才能小於3公尺");
}
}
求1+到100的總和,略過6的倍數
public class hw_continue6
{
public static void main(String args[])
{
int sum=0;
for(int i=1;i<=100;i++){
if(i%6==0){
continue; //遇到6的倍數即略過
}
sum+=i;
}
System.out.println("總和="+sum);
}
}
do while迴圈九九乘法表
public class hw5_11
{
public static void main(String[] args){
int y=1;
do{
int x=1;
do{
System.out.print(y+"*"+x+"="+(x*y)+"\t");
x++;
}while(x<=9);
System.out.println();
y++;
}while(y<=9);
}
}
利用continue或break敘述,找出小於100的最大質數
/* 利用continue或break敘述,找出小於100的最大質數
*質數的定義是大於1的整數,除了1跟自己本身以外,沒有其他因數。
*/
public class hw5_18 {
public static void main(String[] args) {
boolean isPrime; //宣告布林變數isPrime
int max=0; //儲存最大質數
//LoopA: //可使用continue+中斷標籤來撰寫 for(int i=2;i<=100;i++){ isPrime=true; //這裡宣告的目的是為了給最後的if敘述執行 for(int j=2;j<i;j++){ if(i%j==0){ //可以被1與自己以外的數整除,代表不是質數 isPrime=false; break;
/*
當i可被j整除,Ex:當i=4,j=2,i可被j整除,代表不是質數 因此可跳離當層迴圈(break)不需要再往下檢查j=3 j=4 j=5...的狀況
continue LoopA; continue LoopA代表回到離標籤最近的迴圈 */
} }
if(isPrime){ //寫在外迴圈內,此時isPrime為true,因此if敘述可執行 System.out.print(i+" "); //印出1~100的質數 if(max<i){ //找出最大質數 max=i; }
} } System.out.println("\n"+ "1到100最大質數為"+max); } }
//LoopA: //可使用continue+中斷標籤來撰寫 for(int i=2;i<=100;i++){ isPrime=true; //這裡宣告的目的是為了給最後的if敘述執行 for(int j=2;j<i;j++){ if(i%j==0){ //可以被1與自己以外的數整除,代表不是質數 isPrime=false; break;
/*
當i可被j整除,Ex:當i=4,j=2,i可被j整除,代表不是質數 因此可跳離當層迴圈(break)不需要再往下檢查j=3 j=4 j=5...的狀況
continue LoopA; continue LoopA代表回到離標籤最近的迴圈 */
} }
if(isPrime){ //寫在外迴圈內,此時isPrime為true,因此if敘述可執行 System.out.print(i+" "); //印出1~100的質數 if(max<i){ //找出最大質數 max=i; }
} } System.out.println("\n"+ "1到100最大質數為"+max); } }
訂閱:
文章 (Atom)