【從零開始學(xué)Java】學(xué)習(xí)筆記day011練習(xí)

練習(xí)一

有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問第n個月的兔子對數(shù)為多少?

?請定義方法實(shí)現(xiàn)該功能,第n個月由方法的調(diào)用者傳入,返回該月的兔子對數(shù)。調(diào)用方法查看結(jié)果。

分析:第n個月出生的兔子在n+2個月開始生育,那么第n+2個月的兔子總數(shù)為第n天兔子總數(shù)(n+2天新出生的兔子數(shù)量)和第n+1兔子總數(shù)(n+2天非新生兔子的數(shù)量)天的和。得到遞推公式num(n)=num(n-1)+num(n-1);num(1)=num(2)=1用遞推公式和前兩項(xiàng)求末項(xiàng)

import java.util.Scanner;

public class Test411 {?

?? public static void main(String[] args) { ??

? ?? Scanner sc=new Scanner(System.in); ? ? ?

? System.out.println(rabbit(sc.nextInt()));//方法一 ? ? ??

?System.out.println(count(sc.nextInt()));//方法二 ? ?

} ??

?//方法一:循環(huán)+數(shù)組 ? ??

?? public static ?int rabbit(int month){ ??

? ?? int[] numList=new int[month];//創(chuàng)建月份長度的數(shù)組,充當(dāng)數(shù)列 ? ? ? ?

numList[0]=numList[1]=1;//兩項(xiàng)值已知 ? ? ? ??

?? for (int i = 2; i < numList.length; i++) { ? ? ?

? ? ? ? ? numList[i]=numList[i-1]+numList[i-2];//依次求下一月的數(shù)量 ? ??

? ? ?? } ? ? ? ??

?? return numList[month-1];//輸出末項(xiàng)值 ? ??

?? }

//方法二:遞歸

public static int count(int n){ ? ?

if (n==1||n==2){ ? ?

? ? return 1;//前兩項(xiàng)值賦值?

?? } ? ?

return count(n-1)+count(n-2);//遞推公式會反復(fù)調(diào)用count直到n-2=1}

}

練習(xí)二

?我國古代數(shù)學(xué)家張丘建在《算經(jīng)》一書中提出的數(shù)學(xué)問題:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。? 百錢買百雞,問雞翁、雞母、雞雛各幾何?

分析:看到題之后懵了好久,因?yàn)檎H藖碜鲞@道題肯定是解方程組x+y+z=100&&5x+3y+1/3z==100,但我完全想不出來怎么編程解決。

后來想到可以挨個試,于是寫出了三層循環(huán)挨個試三種雞的個數(shù),滿足條件再輸出,這個方法速 度偏慢,于是簡化方程為 14x+8y=200&&z=100-x-y,兩層循環(huán)先求出xy


public class Test411 {

? ? public static void main(String[] args) { ?

? ? ? chikenNum(); ??

?}

public static void chikenNum(){ ?

?a:???for (int cock=1;cock<20;cock++){//第一層循環(huán),挨個試x ? ?

? ? for ( int len=1;len<34;len++){//第二層循環(huán)挨個試y ? ??

? ? ? ? ?? if (14*cock+8*len==200){//滿足條件輸出 ? ? ? ? ? ? ?

? ? ? System.out.println("雞翁:"+cock); ? ? ?

? ? ? ? ? ? ? System.out.println("雞母:"+len); ? ? ??

? ? ? ? ? ?? System.out.println("雞雛:"+(100-cock-len));

break; ? ??

? ? ?? } ? ??

?? }

? ? }

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 50道經(jīng)典Java編程練習(xí)題,將數(shù)學(xué)思維運(yùn)用到編程中來。抱歉哈找不到文章的原貼了,有冒犯的麻煩知會聲哈~ 1.指數(shù)...
    OSET我要編程閱讀 7,282評論 0 9
  • /*【程序21】 * 作者 南楓題目:求1+2!+3!+...+20!的和 1. 程序分析:此程序只是把累加變成了...
    HUC南楓閱讀 494評論 0 0
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,010評論 0 11
  • /* 【程序1】題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一...
    HUC南楓閱讀 483評論 0 1
  • 1.“我即品牌”,學(xué)會講故事,塑造自己的品牌。 2.你的故事一定是要真誠的、真切的、實(shí)實(shí)在在的故事,一定是打動自己...
    陸軍23閱讀 224評論 0 0

友情鏈接更多精彩內(nèi)容