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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

穷举 迭代 while

發布時間:2024/1/17 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 穷举 迭代 while 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

for循環擁有兩類:

窮舉:?把所有可能的情況都走一遍,使用if條件篩選出來滿足條件的情況。

例:1.單位給發了一張150元購物卡,拿著到超市買三類洗化用品。洗發水15元,香皂2元,牙刷5元。求剛好花完150元,有多少種買法,沒種買法都是各買幾樣?

???????? //洗發水 x? 10
?????????//牙刷??? y? 30
?????????//香皂??? z? 75
??????????? int ci = 0;
??????????? int biao = 0;
??????????? for (int x = 0; x <= 10; x++)
??????????? {
??????????????? for (int y = 0; y <= 30; y++)
??????????????? {
??????????????????? for (int z = 0; z <= 75; z++)
??????????????????? {
??????????????????????? ci++;
??????????????????????? if (15 * x + y * 5 + z * 2 == 150)
??????????????????????? {
??????????????????????????? biao++;
??????????????????????????? Console.WriteLine("第{0}種買法:洗發水{1}瓶,牙刷{2}支,香皂{3}塊。", biao, x, y, z);
??????????????????????? }
??????????????????? }
??????????????? }
??????????? }
??????????? Console.WriteLine("總共有{0}種買法。", biao);
??????????? Console.WriteLine(ci);
??????????? Console.ReadLine();

????? 2.百雞百錢:公雞2文錢一只,母雞1文錢一只,小雞半文錢一只,總共只有100文錢,如何在湊夠100只雞的情況下剛好花完100文錢?同百馬百擔

????????????int n = 0;
??????????? for (int g = 0; g * 2 <= 100; g++)
??????????? {
??????????????? for (int m = 0; m <= 100; m++)
??????????????? {
??????????????????? for (int x = 0; x * 0.5 <= 100; x++)
??????????????????? {
??????????????????????? if (g * 2 + m + x * 0.5 == 100 && g + m + x == 100)
??????????????????????? {
??????????????????????????? Console.WriteLine("第{0}種:{1}只公雞,{2}只母雞,{3}只小雞", n, g, m, x);
??????????????????????????? n++;
??????????????????????? }
??????????????????? }
??????????????? }
??????????? }
??????????? Console.WriteLine("總共有{0}種可能性", n);
??????????? Console.ReadLine();

?????3.有1分錢,2分錢,5分錢的硬幣,要組合出來2角錢,有幾種組合方式,分別各多少個?

   ?int n = 0;
??????????? for (int a = 0; a * 1 <= 20; a++)
??????????? {
??????????????? for (int b = 0; b*2 <= 20; b++)
??????????????? {
??????????????????? for (int c = 0; c *5 <= 20; c++)
??????????????????? {
??????????????????????? if (a * 1 + b*2 + c * 5 == 20)
??????????????????????? {???
??????????????????????????? n++;
??????????????????????????? Console.WriteLine("第{0}種:{1}枚1分錢,{2}枚2分錢,{3}枚5分錢", n, a, b, c);
???????????????????????? }
??????????????????? }
??????????????? }
??????????? }
??????????? Console.WriteLine("總共有{0}種可能性", n);
??????????? Console.ReadLine(); 

迭代:?從初始情況按照規律不斷求解中間情況,最終推導出結果。

例:1.五個小朋友排成一隊,問第一個多大了,第一個說比第二個大兩歲,問第二個多大了,第二個說比第三個大兩歲。。。以此類推,問第5個小朋友,說自己3歲了。

????????問第一個小朋友幾歲了?

????????????int n = 1;
??????????? int a = 3;
??????????? while (n < 5)
??????????? {
??????????????? a += 2;
??????????????? n++;
??????????? }
??????????? Console.WriteLine("第一個小朋友{0}歲了", a);
??????????? Console.ReadLine();

?????2.紙張可以無限次對折,紙張厚度為0.07毫米。問多少次對折至少可以超過8848?

????????????double height = 0.07;//8848m=8848000
??????????? int ci = 0;
??????????? while (height <= 8848000)
??????????? {
??????????????? ci++;
??????????????? height *= 2;//height=height*2;
??????????? }
??????????? Console.WriteLine(ci);
??????????? Console.ReadLine();

while 循環

其實是for循環的變形寫法
for(int i = 1; i<=5;i++)
{
?循環體;
}

上面的for循環可以寫成
int i= 1;
for(;i<=5;)
{
?循環體;
?i++;
}

寫成while就是以下樣式
int i= 1;
while(表達式(i<=5))
{
?循環體;
?狀態改變(i++);
}

?

do
{
?循環體;
?狀態改變(i++);
}while(表達式(i<=5))
注意:do while是不管滿不滿足表達式,我都會先執行一遍。

?

跳轉語句:
break:跳出整個循環
continue:跳出本次循環,繼續下次循環。

轉載于:https://www.cnblogs.com/yp11/p/5827520.html

總結

以上是生活随笔為你收集整理的穷举 迭代 while的全部內容,希望文章能夠幫你解決所遇到的問題。

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