當我們要解決一些問題時,碰到的並不都是能輕易驗證為真的問題
譬如我們想要求一定範圍內的素數,運用迴圈結構,只有在最後乙個迴圈執行完之後,我們才能夠真正判定,這個數確實是素數。再比如在鞍點問題中,我們只有在一行的迴圈都走完之後,我們才能下結論說:這一行的鞍點不存在。
於是在更加複雜的巢狀迴圈中,似乎尋找判定條件會變得越來越艱難。
因此,在這裡我們採取引入變數來代表乙個事件的方式來解決這個問題
從素數問題講起(在這裡以3~100裡的素數為例)
#include
#include
intmain()
//一旦true為假,那麼true=0,且跳出程式 }if
(true!=0)
/*由此,利用真的反面————偽,即可寫出乙個較為清晰的邏輯,即我們只需要證明其他都是偽,那麼剩下的那個能完整做完的即為真*/
printf
("%d "
,n);
}return0;
}
這是較為簡單的一種應用
接下來討論一下鞍點問題
先說說什麼是鞍點:乙個元素在所在行上最大、在所在列上最小
倘若我們要對行討論,如果某一行有鞍點,即輸出其座標,如果沒有鞍點,則要輸出沒有鞍點
這同樣是乙個需要做到迴圈最尾才能探尋出結果的問題,我們同樣採用取變數的方式來解決這個問題
#include
intmain()
//給陣列賦值
int x,y,true,go_on;
for(m=
0;m<=i-
1;m++)}
//找出滿足行最大的數(可能多個,也可能無)
while
(go_on==1)
}}//對行最大值是否為列最小值的判斷
if(true)
printf
("%d行%d列存在鞍點,值為%d\n",m+
1,n+
1,nums[m]
[n]);}
if(true==0)
;printf
("第%d行不存在鞍點\n"
,m+1);
//注意兩個對true討論的位置,分別放在不同的迴圈體中,乙個是希望單次迴圈後立馬出結果,另乙個是希望行迴圈全走完後出結果
}return0;
}
故而,總結一下,我們可以在迴圈中可以使用乙個變數來代表某個事件,使得邏輯變得更加清晰,尤其是對於迴圈全走完後才能知道結果的問題,這樣的小套路會使問題變得簡單 乙個迴圈 乙個變數列印乘法口訣
前幾天面試的時候遇到了乙個問題,當時也沒啥思路,而且時間比較緊,所以就空下了。回來後一直耿耿於懷,於是研究了一下。問題是這樣的 只用乙個迴圈和乙個變數列印出乘法口訣。想了一段時間感覺還是沒啥思路,上網查了查,網上倒是沒找到乙個迴圈的乘法口訣,但是乙個帖子的回答讓我一下有了思路。帖子裡是用兩個迴圈乙個...
while迴圈的乙個小例子
我國最高山峰是珠穆朗瑪峰 8848m,我現在有一張足夠大的紙張,厚度為 0.01m。請問,我摺疊多少次,就可以保證厚度不低於珠穆朗瑪峰的高度?分析 1 統計思想 定義統計變數 2 最高山峰是珠穆朗瑪峰 8848m 最終厚度 有一張足夠大的紙張,厚度為 0.01m 初始厚度 3 厚度不低於珠穆朗瑪峰的...
Python中乙個for迴圈迴圈多個變數的示例
首先,熟悉乙個函式zip,如下是使用help zip 對zip的解釋。help on built in function zip in module builtin zip z程式設計客棧ip seq1 seq2 seq1 0 seq2 0 return a list of tuples,where...