日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java笔试题递归,递归(网上搜的一些笔试题)

發布時間:2023/12/4 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java笔试题递归,递归(网上搜的一些笔试题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個射擊運動員打靶,靶一共有10環,連開10槍打中90環的可能性有多少種?請用遞歸算法編程實現。

public class Cs

{

public int times;

public int score;

public int[] loops;

public int count=0;

public static void main(String[] args)

{

Cs cs=new Cs(10,90);

cs.loop(10);

System.out.println(cs.count);

}

public Cs(int times,int score)

{

this.times=times;

this.score=score;

loops=new int[times];

}

public void loop(int cur)

{

if(cur==0)

{

if(score!=0)

return;

count++;

return;

}

cur--;

for(int i=10;i>0;i--)

{

loops[cur]=i;

score-=i;//模擬嵌套for循環

loop(cur);

score+=i; //狀態恢復

}

}

}

輸入兩個整數n和m,從數列1、2、3、...n中任意取幾個數,使其和等于m,要求將其中所有可能的組合都列出來

public class Cs

{

public int n;

public int m;

public int[] result;

public int count=0;

public static void main(String[] args)

{

Cs cs=new Cs(10,50);

cs.loop();

System.out.println(cs.count);

}

public Cs(int n,int m)

{

this.n=n;

this.m=m;

result=new int[n];

}

public void loop()

{

int[] loops=new int[n];

result=new int[n];

for(int i=0;i

loops[i]=i+1;

loop(n,loops);

}

private void loop(int cur,int[] _loop)

{

if(m<=0||_loop.length==0)

{

if(m!=0)

return;

count++;

for(int i=0;i

System.out.print(result[i]+",");

System.out.println("");

return;

}

cur--;

for(int i=0;i<_loop.length>

{

result[cur]=_loop[i];

m-=_loop[i];

//等到最終結果需要不重復,可以按元素大小排序來得到下一步_loop

int[] _loop_=new int[cur];

for(int j=i+1;j<_loop.length>

_loop_[j-i-1]=_loop[j];

loop(cur,_loop_);

m+=_loop[i]; //狀態恢復

}

}

}

總結

以上是生活随笔為你收集整理的java笔试题递归,递归(网上搜的一些笔试题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。